一尘不染

一个Spring Boot项目,同时部署到JAR或WAR

spring

有没有办法在不更改pom.xml或应用程序源的情况下将单个Spring Boot项目打包到JAR和WAR中?

我已经读过将Spring Boot JAR应用程序转换为WAR,但是它将项目转换为WAR,并且失去了打包为JAR的能力。

我不希望mvn package两者都做。我想要的是类似的东西mvn i-want-a-jar,它将项目打包为JAR。或者我可以运行mvn i-want-a-war,它将项目打包为WAR。

这可能吗?


阅读 397

收藏
2020-04-16

共2个答案

一尘不染

可执行的WAR文件怎么了?那不是你真正需要的吗?

java -jar name.war
2020-04-16
一尘不染

我设法通过添加

<packaging>${packaging.type}</packaging>

到POM文件,然后为JAR和WAR设置不同的配置文件:

  <profiles>
    <profile>
      <id>jar</id>
      <properties>
        <packaging.type>jar</packaging.type>
      </properties>
    </profile>
    <profile>
      <id>war</id>
      <properties>
        <packaging.type>war</packaging.type>
      </properties>
      <dependencies>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-tomcat</artifactId>
          <scope>provided</scope>
        </dependency>
      </dependencies>
    </profile>
  </profiles>

现在mvn package -P war产生一个WAR并mvn package -P jar产生一个JAR。

另一个选择是为JAR和WAR创建单独的模块,但是我没有走那条路。

2020-04-16