Gradle 圣杯4-格拉德尔';组装&x27;任务未生成.war.original存档
我刚刚将GrailsWeb应用程序从3.2版升级到4.0版 我在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,但结果是一样的。 虽
build.gradle
中提供了一个依赖项(相当常见的配置):
我刚刚注意到,通过执行Gradleassemble
任务,我不再获得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
的档案,不包括不需要的内容
但我还是很困惑,就像
statesbootWar
是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