从 IntelliJ IDEA 社区上的 Gradle 项目构建 WAR 文件(不包括来自构建的资源)

Build WAR file from Graddle Project on InteliJ IDEA Community (excluding resources from build)

我使用 InteliJ IDEA 社区版开发了一个 Spring 应用程序。

社区版不支持 WAR 工件,所以我必须手动获取它。

我已经找到了如何在 maven 项目上执行此操作,但我的是一个 gradle 项目。那么,如何从我的 gradle 项目构建 WAR?

在 maven 项目中,您可以配置使用 wagon-maven-plugin 的 maven 运行 以获得 WAR 文件。是否可以用 gradle 做同样的事情?

编辑

我一直在使用 bootWar 和 bootJar 进行测试,以便同时制作(Jar 和 War)。

好的,成功了。我现在的问题是这两个插件实际上是在打包我的 resources 目录。

我试过使用 exclude 但没有用。

这就是我正在做的事情:

bootJar {
    mainClassName = 'Server.Application'
    exclude("/src/resources/**")
    version =  '0.1.7'
}

bootWar {
    mainClassName = 'Server.Application'
    exclude("/src/resources/**")
    version = '0.1.3'
}

我的项目结构如下:

编辑 2 - 最后的方法

为了不让资源进入构建,我在构建之前删除了它们:

bootJar {
    mainClassName = 'FitServer.Application'
    setDestinationDir(new File ('build/war'))
    version = '0.1.2'

    doFirst {
        delete('build/resources')
    }
}

根据 Gradle Guide 有一个 war plugin 用于构建 Java 网络应用程序,社区提供了一个名为 gretty 的优秀插件用于测试和部署网络应用程序码头或 Tomcat.

您可以在 build.gradle 文件中使用此 war 插件。