10.2.1 jar形式
1.打包
若我们在新建Spring Boot项目的时候,选择打包方式(Packaging)是jar,则我们只需用:
mvn package
2.运行
可直接使用下面命令运行,结果如图
java -jar xx.jar
3.注册为Linux的服务
Linux下 的软件我们通常把它注册为服务,这样我们就可以通过命令开启、关闭以及保持开机启动等功能。
若想使用此功能,我们需将代码中关于spring-boot-maven-plugin的配置修改为:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
</plugins>
</build>
然后使用mvn packege打包
主流的Linux大多使用init.d或systemd来注册服务。下面以CentOS 7.1演示systemd注册服务。操作系统可选择使用VirtualBox安装或者直接安装在机器上。
(2)基于Linux的Systemd部署
在/etc/systemd/system/目录下新建文件ch10.service,填入下面内容:
注意,在实际使用中修改Description和ExecStart后面的内容。
启动服务:
systemctl start ch10
或systemctl start ch10.serviece
停止服务:
systemctl stop ch10
或systemctl stop ch10,service
服务状态:
systemctl status ch10
或systemctl status ch10.service
开机启动:
systemctl enable ch10
或systemctl enable ch10.service
项目日志:
journalctl -u ch10
或journalctl -u ch10.service
war形式
1.打包方式为war时
新建Spring Boot项目时可选择打包方式(Packaging)是war形式,如图
打包的方式和jar包一致,执行:
mvn package
如果如图
最后生成的war文件可以放在你喜欢的Servlet容器上运行。
2.打包方式为jar时
若我们新建Spring Boot项目时选择打印方式选择的是jar,部署时我们又想用war包形式部署,那么怎么将jar形式转换成war形式呢?当然需求反过来也是一样的。
我们比较下jar打包和war打包项目文件的不同之处,即可知做如下修改可将jar打包方式换成war打包方式。
在pom.xml文件中,将
<packaging>jar<packaging>
修改为
<packaging>war<packaging>
增加下面依赖覆盖默认内嵌的Tomcat依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
增加ServletInitializer类,内容如下:
package com.wisely.ch10war;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Ch10warApplication.class);
}
}