在 Grails 3 中从 WAR 打包中排除文件/目录

Sha*_*wal 3 grails gradle build.gradle grails-3.1

在我的 Grails 3.1.10 应用程序中,我在src/main/webapp/ngAngular 应用程序的目录中有几个文件,我想在grails package命令时从打包到 WAR 文件中排除一些目录/文件。

在 Grails 2.x 应用中,我们通过BuildConfig.groovy设置实现:

grails.war.resources = { stagingDir, args ->
    delete(dir: "${stagingDir}/ng/node_modules")
    delete(dir: "${stagingDir}/ng/app")
    delete(dir: "${stagingDir}/ng/bower_components")
}
Run Code Online (Sandbox Code Playgroud)

我们如何在 Grails 3 中实现这一目标?我试图寻找它,但没有找到任何东西。

Sha*_*wal 5

后来我意识到 Grails 3 使用的是 Gradle,而 Grails 2 使用的是 Ant 任务。所以我搜索了在 Gradle 中排除内容的相同问题,因为 Grails 3 使用 Gradle 的WAR 插件和文档:

当然,可以使用闭包配置不同的文件集来定义排除和包含。

这是从打包中排除 Grails 3 中的文件的解决方案。

将以下内容放入build.gradle您的 Grails 3 应用程序的文件中:

war {
    exclude("ng/node_modules")
    exclude("ng/bower_components")
    exclude("ng/app")
    exclude("ng/*.tar.gz")
    exclude("ng/.*")       // For example: exclude all the hidden files
}
Run Code Online (Sandbox Code Playgroud)