好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

配置SpringBoot方便的切换jar和war的方法示例

网上关于如何切换,其实说的很明确,本文主要通过profile进行快速切换已实现在不同场合下,用不同的打包方式。

jar到war修改步骤

pom文件修改

packaging配置由jar改为war 排除tomcat等容器的依赖 配置web.xml或者无web.xml打包处理

入口类修改

添加servletinitializer

特别注意:当改成war包的时候,application.properties配置的server.port和server.servlet.context-path就无效了,遵从war容器的安排。

配置pom

配置packaging

?

1

<packaging>${pom. package }</packaging>

修改build

?

1

2

3

4

5

6

7

8

9

10

11

12

13

<!-- 作用是打war包的时候,不带版本号 -->

<finalname>${pom.packagename}</finalname>

 

<!--加入plugin-->

<plugin>

  <groupid>org.apache.maven.plugins</groupid>

  <artifactid>maven-war-plugin</artifactid>

  <version> 3.2 . 2 </version>

  <configuration>

   <!--如果想在没有web.xml文件的情况下构建war,请设置为 false 。-->

   <failonmissingwebxml> false </failonmissingwebxml>

  </configuration>

</plugin>

排除容器

?

1

2

3

4

5

6

7

8

9

10

<dependency>

  <groupid>org.springframework.boot</groupid>

  <artifactid>spring-boot-starter-web</artifactid>

  <exclusions>

   <exclusion>

    <groupid>org.springframework.boot</groupid>

    <artifactid>spring-boot-starter-tomcat</artifactid>

   </exclusion>

  </exclusions>

</dependency>

配置profile

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

<profiles>

  <profile>

   <!-- 开发环境 -->

   <id>jar</id>

   <activation>

    <activebydefault> true </activebydefault>

   </activation>

   <properties>

    <pom. package >jar</pom. package >

    <pom.packagename>${project.artifactid}-${project.version}</pom.packagename>

    <pom.profiles.active>dev</pom.profiles.active>

   </properties>

   <dependencies>

    <dependency>

     <groupid>org.springframework.boot</groupid>

     <artifactid>spring-boot-starter-tomcat</artifactid>

    </dependency>

   </dependencies>

  </profile>

  <profile>

   <id>war</id>

   <properties>

    <pom. package >war</pom. package >

    <pom.packagename>${project.artifactid}</pom.packagename>

    <pom.profiles.active>linux</pom.profiles.active>

   </properties>

   <dependencies>

    <dependency>

     <groupid>org.springframework.boot</groupid>

     <artifactid>spring-boot-starter-tomcat</artifactid>

     <scope>provided</scope>

    </dependency>

    <dependency>

     <groupid>javax.servlet</groupid>

     <artifactid>javax.servlet-api</artifactid>

     <version> 4.0 . 1 </version>

     <scope>provided</scope>

    </dependency>

   </dependencies>

  </profile>

</profiles>

修改入口类

入口类继承springbootservletinitializer 重写configure方法

使用@profile注解,当启用war配置的时候,初始化servlet。

?

1

2

3

4

5

6

7

8

9

10

11

12

public class application extends springbootservletinitializer {

 

  public static void main(string[] args) {

   springapplication.run(application. class , args);

  }

 

  @profile (value = { "war" })

  @override

  protected springapplicationbuilder configure(springapplicationbuilder application) {

   return application.sources(application. class );

  }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

原文链接:https://segmentfault测试数据/a/1190000017926997

查看更多关于配置SpringBoot方便的切换jar和war的方法示例的详细内容...

  阅读:12次