天天看點

springboot 打包成war或jar

自動生成的springboot項目中的啟動類

預設是可以打成jar包,既以下形式

@SpringBootApplication
public class DemoApplication {

   
	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}

}
           

打包在 pom.xml的目前檔案夾 cmd 執行

mvn clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true
           

直接在target檔案下生成 了jar 包

如果需要打成war 包需要比原先多導入個依賴

//使用外部tomcat啟動 
	<dependency>
	        <groupId>org.springframework.boot</groupId>
	        <artifactId>spring-boot-starter-tomcat</artifactId>
	        <scope>provided</scope>

     </dependency>
           

啟動類也要改變成如下

@SpringBootApplication
public class DemoApplication extends  SpringBootServletInitializer{
	   @Override
	  protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
		   
     return application.sources(DemoApplication.class);
     
 }
//  該方法在要打成war 包時記得注釋掉,運作測試可以開啟
//	public static void main(String[] args) {
//		SpringApplication.run(DemoApplication.class, args);
//	}

}
           

需要繼承SpringBootServletInitializer 類

并且打成war時不需要main 方法了 測試時可以添加

最後要打包時把

<packaging>jar</packaging>

改成

<packaging>war</packaging>

如下

<groupId>com.example</groupId>
<artifactId>doremi</artifactId>
<version>0.0.1-SNAPSHOT</version>
 <packaging>war</packaging>
<name>doremi_api</name>
<description>鋼琴教學</description>
           

打包指令跟上面的一樣,成功後再target下生成了war包

注意測試時啟動類(既上面)DemoApplication 類是 war 包的形式時使用的

端口是在

application.properties類配置檔案中server.port 的端口

但在打包成war 包部署 到外部tomcat裡 這時使用的端口是外部tomcat 的端口

部署的方法很簡單直接把war包 放在 tomcat 的webapps檔案下 重新開機tomcat ,就可以了應用名是war包的名字