使用Gradle War Plugin时,如何使bootRepackage依赖jar而不是战争

Joh*_*Lim 6 jar war gradle spring-boot

没有Gradle War Plugin,bootRepackage任务取决于jar任务,但使用Gradle War Plugin,它取决于war任务.

jar即使我正在使用Gradle War插件,如何更改它以依赖任务?

更新:

我正在使用war任务创建一个war文件,包括要部署到文档服务器的文档,我想使用bootRepackaged jar文件来提供服务.我的war任务取决于依赖于asciidoctor任务的test任务(我正在使用Spring REST Docs.)但我不想在使用任务时运行asciidoctor任务或任务.testbootRepackage

我通过以下设置解决了我的问题:

ext {
    mainClassName = 'com.izeye.throwaway.Application'
}

task myBootRepackage(type: BootRepackage, dependsOn: jar) {
}
Run Code Online (Sandbox Code Playgroud)

但我不确定这是一个好习惯.

这是一个具有上述配置的示例项目:

https://github.com/izeye/spring-boot-throwaway-branches/tree/war

And*_*son 7

你应该能够做到这一点:

bootRepackage {
    withJarTask jar
}
Run Code Online (Sandbox Code Playgroud)

虽然这正确地导致jar任务的jar被重新打包,但它不会消除对war任务的依赖.这是Spring Boot问题的另一个症状.

在此问题得到解决之前,您采取的方法 - 声明自己的BootRepackage任务并手动配置它所依赖的任务 - 是您的最佳选择.