有没有办法在不更改pom.xml或应用程序源的情况下将单个Spring Boot项目打包到JAR和WAR中?
pom.xml
我已经读过将Spring Boot JAR应用程序转换为WAR,但是它将项目转换为WAR,并且失去了打包为JAR的能力。
我不希望mvn package两者都做。我想要的是类似的东西mvn i-want-a-jar,它将项目打包为JAR。或者我可以运行mvn i-want-a-war,它将项目打包为WAR。
mvn package
mvn i-want-a-jar
mvn i-want-a-war
这可能吗?
可执行的WAR文件怎么了?那不是你真正需要的吗?
java -jar name.war
我设法通过添加
<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。
mvn package -P war
mvn package -P jar产
另一个选择是为JAR和WAR创建单独的模块,但是我没有走那条路。