Gradle 如何配置构建文件以从同一项目创建 Spring boot jar 和 spring web-mvc war

Posted

技术标签:

【中文标题】Gradle 如何配置构建文件以从同一项目创建 Spring boot jar 和 spring web-mvc war【英文标题】:Gradle how to configure build file to create Spring boot jar and spring web-mvc war from same project 【发布时间】:2017-10-28 20:11:51 【问题描述】:

我需要从同一个项目中创建一个 spring boot jar 和 spring web mvc war 以在两个不同的环境中运行。我已经尝试在两种环境中都进行单一的战争,但是弹簧引导罐在容器中产生了问题(非弹簧引导环境),所以最好为两种环境使用不同的 jar/war。

现在在 spring mvc 战争中,我不想包含 spring-boot jars(starter 和 tomcat-starter)。同样,在 spring boot jar 中,我不想包含 spring-mvc 战争所需的容器特定 jar,例如 javax-servlet-api.jar。

如何使这两组不同的依赖项在同一个 gradle 文件中工作,并使用 war 和 spring-boot 插件来创建 war 和 jar 作为构建输出。

我是 gradle 新手,如果你有任何想法,请帮忙。

【问题讨论】:

【参考方案1】:

在 build.gradle 文件中,更改如下

为了战争,

    apply plugin: 'war'

    war 
        baseName = 'name of the project'
        group = group
        manifest 
           attributes 'Implementation-Title': 'Title Of Project'
        
    

对于罐子,

    apply plugin: 'jar'

    jar 
        baseName = 'name of the project'
        version =  version
        group = group
        manifest 
           attributes 'Implementation-Title': 'Title Of Project'
       
    

【讨论】:

以上是关于Gradle 如何配置构建文件以从同一项目创建 Spring boot jar 和 spring web-mvc war的主要内容,如果未能解决你的问题,请参考以下文章

Gradle项目构建docker镜像(支持Gradle多模块)

使用 Build Flavors - 正确构建源文件夹和 build.gradle

在 IntelliJ IDEA 中创建 Java Gradle 项目并构建 .jar 文件 - 如何?

如何在spring boot gradle项目的.jar根目录中构建一个文件夹?

在 Gradle 中为 Android 中的库项目构建变体

如何在多模块 Gradle 项目中构建分发包?