【问题标题】:Spring Boot War春靴大战
【发布时间】:2014-10-21 17:23:47
【问题描述】:

我倾向于在开发过程中使用可运行的 JAR,但我需要一个 WAR 进行部署。

我关注了 this 关于从 JAR 转换为 WAR Spring Boot Gradle 构建的文章。

但是,现在,每次我将构建从一个切换到另一个时,我都必须对构建文件的特定部分进行注释和取消注释。

是否有更简洁的处理方式允许 JAR 和 WAR 构建?

【问题讨论】:

    标签: gradle spring-boot


    【解决方案1】:

    为部署而构建的战争(即如果您添加了 spring-boot maven 插件)就像 jar 文件一样可运行。

    java -jar mywar.war
    

    而且它从嵌入式服务器开始,您可以将相同的战争部署到您的服务器,然后它不使用嵌入式服务器。

    【讨论】:

    • 因为直到一位同事告诉我,我才理解它,我将把它改写为“对于 spring-boot 生成的 jar,你不需要 tomcat;它已经是一个可运行的应用程序"
    【解决方案2】:

    您可以在构建时指定 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 项目,那么您希望在构建机器上设置两个不同的构建文件,例如上面的构建文件

    【讨论】:

      猜你喜欢
      • 2017-12-03
      • 2015-10-19
      • 1970-01-01
      • 2013-07-11
      • 2017-12-04
      • 2016-02-11
      • 2016-10-27
      • 2014-04-28
      • 2020-08-31
      相关资源
      最近更新 更多