Gradle 圣杯4-格拉德尔';组装&x27;任务未生成.war.original存档

Gradle 圣杯4-格拉德尔';组装&x27;任务未生成.war.original存档,gradle,grails,build.gradle,grails-4,Gradle,Grails,Build.gradle,Grails 4,我刚刚将GrailsWeb应用程序从3.2版升级到4.0版 我在build.gradle中提供了一个依赖项(相当常见的配置): 我刚刚注意到,通过执行Gradleassemble任务,我不再获得myApp.war.original存档(以前构建时没有提供所有lib),而只获得包含提供的依赖项的存档 我是不是遗漏了什么?我真的很想在lib提供的文件夹中腾出约4MB的JAR。 提前谢谢 更新1 按照@ck1的建议,我将provided依赖项更改为providedCompile,但结果是一样的。 虽

我刚刚将GrailsWeb应用程序从3.2版升级到4.0版

我在
build.gradle
中提供了一个
依赖项(相当常见的配置):

我刚刚注意到,通过执行Gradle
assemble
任务,我不再获得
myApp.war.original
存档(以前构建时没有提供所有lib),而只获得包含提供的依赖项的存档

我是不是遗漏了什么?我真的很想在
lib提供的
文件夹中腾出约4MB的JAR。 提前谢谢


更新1

按照@ck1的建议,我将
provided
依赖项更改为
providedCompile
,但结果是一样的。 虽然我已经使用了
war
插件,但我注意到
assembly
任务启动的任务顺序是:

> Task :assetCompile
Finished Precompiling Assets
> Task :compileJava
> Task :compileGroovy
> Task :buildProperties
> Task :processResources
> Task :classes
> Task :compileWebappGroovyPages NO-SOURCE
> Task :compileGroovyPages
> Task :compileGsonViews
> Task :findMainClass
> Task :bootWar
> Task :war SKIPPED
> Task :assemble
因此,
war
任务被跳过,取而代之的是新的
bootWar
任务(Gradle3中不可用,Grails3使用)。 有什么办法强迫它吗?或者它是插件应该已经支持的东西


更新2

经过一些研究,我添加了
build.gradle

war {
    enabled = true
}
并且能够执行
war
任务:

> Task :assetCompile
Finished Precompiling Assets
> Task :compileJava
> Task :compileGroovy
> Task :buildProperties
> Task :processResources
> Task :classes
> Task :compileWebappGroovyPages NO-SOURCE
> Task :compileGroovyPages
> Task :compileGsonViews
> Task :findMainClass
> Task :bootWar
> Task :war           // not skipped
> Task :assemble
我基本上到达了我想要的地方,即获得一个没有提供所有依赖项的战争档案;与以前不同的是,不是一对.war档案(
myApp.war
myApp.war.original
),而是一个名为
myApp.war
的档案,不包括不需要的内容

但我还是很困惑,就像 states
bootWar
war
的扩展

bootRepackage任务已被bootJar和bootWar任务替换,分别用于构建可执行jar和war。这两个任务都扩展了其等效的标准Gradle jar或war任务,使您能够访问所有常用的配置选项和行为

但随后状态
war
任务将被跳过:

bootRepackage任务已被bootJar和bootWar任务替换,分别用于构建可执行jar和war。不再涉及jar和war任务


那么,我又错过了什么呢?

您应该用
war
插件中的
providedCompile
providedRuntime
依赖项配置替换提供的

这两种配置的作用域与相应的编译配置的作用域相同 和运行时配置,但它们未添加到WAR中 档案馆

参考资料:


谢谢你的建议!我做了一些测试,上面对我的问题进行了编辑。
> Task :assetCompile
Finished Precompiling Assets
> Task :compileJava
> Task :compileGroovy
> Task :buildProperties
> Task :processResources
> Task :classes
> Task :compileWebappGroovyPages NO-SOURCE
> Task :compileGroovyPages
> Task :compileGsonViews
> Task :findMainClass
> Task :bootWar
> Task :war           // not skipped
> Task :assemble