【发布时间】:2014-10-21 17:23:47
【问题描述】:
我倾向于在开发过程中使用可运行的 JAR,但我需要一个 WAR 进行部署。
我关注了 this 关于从 JAR 转换为 WAR Spring Boot Gradle 构建的文章。
但是,现在,每次我将构建从一个切换到另一个时,我都必须对构建文件的特定部分进行注释和取消注释。
是否有更简洁的处理方式允许 JAR 和 WAR 构建?
【问题讨论】:
标签: gradle spring-boot
我倾向于在开发过程中使用可运行的 JAR,但我需要一个 WAR 进行部署。
我关注了 this 关于从 JAR 转换为 WAR Spring Boot Gradle 构建的文章。
但是,现在,每次我将构建从一个切换到另一个时,我都必须对构建文件的特定部分进行注释和取消注释。
是否有更简洁的处理方式允许 JAR 和 WAR 构建?
【问题讨论】:
标签: gradle spring-boot
为部署而构建的战争(即如果您添加了 spring-boot maven 插件)就像 jar 文件一样可运行。
java -jar mywar.war
而且它从嵌入式服务器开始,您可以将相同的战争部署到您的服务器,然后它不使用嵌入式服务器。
【讨论】:
您可以在构建时指定 pom 或 gradle 构建文件。 因此,您可以为 maven 构建创建多个 pom 文件(一个用于 jar 打包,另一个用于 war 打包),对于 gradle 构建也可以这样做。
例如,如果您设置 pom.xml 或 build.gradle 文件用于 jar 打包,并且还设置 pomWar.xml 或 buildWar.gradle 用于 war 打包,那么您可以运行以下命令
[ 由 maven 构建 jar 包装] $ mvn 全新安装
[通过 gradle 构建 jar 打包] $ gradle clean test bootRepackage
[由 maven 构建战争包装] $ mvn -f pomWar.xml 全新安装
[通过 gradle 构建战争包装] $ gradle -b buildWar.gradle clean test bootRepackage
war 文件不能是其他项目的依赖项。因此,如果您有其他项目依赖于您的 Spring Boot 项目,那么您希望在构建机器上设置两个不同的构建文件,例如上面的构建文件
【讨论】: