Spring Boot可以打成jar包,也可以打成war包。啟動方式類有main函數做為入口,比如:java -jar xxx.jar。Spring Boot默認內置Tomcat服務器,當然也可以將war包,部署到其他web容器中(Tomcat、weblogic等)。
1、jar包
pom.xml
<groupId>com.test</groupId>
<artifactId>demo</artifactId>
<version>0.1.1-SNAPSHOT</version>
<name>demo</name>
...
<packaging>jar</packaging>
...
最后的build也要有,不然會報 ”xxx.jar中沒有主清單屬性“的錯
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
一、jar包
1、生成jar包:
在源代碼根目錄下,運行mvn package -Dmaven.test.skip=true,根據pom中的packaging值生成demo-0.1.1-SNAPSHOT.jar;參數:maven.test.skip=true 是不打包測試代碼。
2、運行:
java -jar demo-0.1.1-SNAPSHOT.jar
或后台運行
nohup java -jar demo-0.1.1-SNAPSHOT.jar &
二、war包
1、pom.xml調整packaging為war,同時排除tomcat
...
<packaging>war</packaging>
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
DemoApplication.java修改啟動類,使其繼承SpringBootServletInitializer,新增configure方法。其他不變。
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(DemoApplication.class);
}
}
生成war包命令與jar包相同,生成后可以修改war包名稱,比如:myspringboot.war,部署到其他應用服務器。
運行war包,application.properties中配置的端口不起作用,將有應用服務器決定。