我正在使用Spring Boot构建一个Web应用程序。 我想在最后更改一些WEB-INF / lib / *。jars的名称。
如果我正确理解了文档,则应该使用spring-boot-gradle-plugin提供的bootWar任务(标准战争任务的子类)的“重命名”方法来工作。
但是,根本不会执行“重命名”方法,即,如果我将其添加到build.gradle中:
bootWar {
rename { name ->
println "***** " + name
name
}
然后什么也不会打印。采用原始模式和替换模式的“重命名”方法重载也不起作用。
我在一个示例项目中进行了尝试,但在那儿也不起作用:
apply plugin: 'java'
更改为apply plugin: 'war'
bootWar
配置答案 0 :(得分:2)
您需要在rename
上调用bootWar.rootSpec
方法,如下所示:
bootWar {
rootSpec.rename { name ->
println "***** " + name
name
}
}
然后,您将可以重命名所需的库:
> Task :bootWar
***** MANIFEST.MF
***** spring-boot-starter-web-2.0.4.RELEASE.jar
***** spring-boot-starter-aop-2.0.4.RELEASE.jar
***** spring-boot-starter-2.0.4.RELEASE.jar
( ...)
我不知道其原因,但是rename
任务的War
闭包将仅应用于位于项目src/main/webapp
目录下的资源,而不应用于其他资源(例如依赖项)。您可以通过创建虚拟资源src/main/webapp/foo.txt
并执行测试脚本来确认这一点:
$ ./gradlew bootWar
> Task :bootWar
***** foo.txt