首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grails 4-分级“组装”任务不生成.war.original存档

Grails 4-分级“组装”任务不生成.war.original存档
EN

Stack Overflow用户
提问于 2019-12-13 13:50:47
回答 1查看 856关注 0票数 3

我刚把我的Grails网站应用程序从3.2版升级到4.0版。

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

代码语言:javascript
复制
dependencies {
    ...
    compile "org.springframework.boot:spring-boot-starter-logging"
    compile "org.springframework.boot:spring-boot-autoconfigure"
    compile "org.springframework.boot:spring-boot-starter-actuator"
    provided "org.springframework.boot:spring-boot-starter-tomcat"
    ...
}

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

我是不是漏掉了什么?我真的很想把那些~4MB的罐子放在lib-provided文件夹里。提前感谢!

更新1

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

代码语言:javascript
复制
> 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任务(在Gradle 3中不可用,Grails 3使用)。有什么办法强迫它吗?或者是插件应该支持的东西?

更新2

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

代码语言:javascript
复制
war {
    enabled = true
}

并且能够让war任务执行:

代码语言:javascript
复制
> 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存档;但是,与以前不同的是,不是一对.war存档(myApp.warmyApp.war.original),而是一个名为myApp.war的单独存档,它不包括不需要的东西。

但是我仍然很困惑,因为Spring Boot的Gradle插件文档声明bootWarwar的一个扩展。

用于构建可执行jars和wars的bootRepackage任务已分别替换为bootJar和bootWar任务。这两个任务都扩展了它们等效的标准Gradle jar或war任务,允许您访问所有常见的配置选项和行为。

但是,SpringBoot2.0迁移指南状态war任务将被跳过:

用于构建可执行jars和wars的bootRepackage任务已分别替换为bootJar和bootWar任务。jar和战争任务不再涉及。

所以再说一遍,我错过了什么?

EN

回答 1

Stack Overflow用户

发布于 2019-12-13 14:49:41

您应该将provided替换为来自war插件的providedCompileprovidedRuntime依赖项配置。

这两种配置与各自的编译和运行时配置具有相同的范围,只不过它们没有添加到WAR存档中。

参考:

plugin.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59323898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档