【问题标题】:How to make bootRepackage depends on jar not war when using Gradle War Plugin使用 Gradle War 插件时如何使 bootRepackage 依赖于 jar 而不是战争
【发布时间】:2016-01-30 15:46:51
【问题描述】:

没有 Gradle War 插件,bootRepackage 任务依赖于jar 任务,但使用 Gradle War 插件,它依赖于war 任务。

即使我正在使用 Gradle War 插件,如何将其更改为依赖于 jar 任务?

更新:

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

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

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

task myBootRepackage(type: BootRepackage, dependsOn: jar) {
}

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

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

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

【问题讨论】:

  • 我不太确定,你想通过这个实现什么,但可能你应该尝试创建一些 Jar 类型的自定义任务(或者可能只传递 jar)并配置插件为bootRepackage { withJarTask = customJarTask } 由于此引用docs.spring.io/spring-boot/docs/current/reference/html/…
  • @Stanislav 感谢您的评论。我更新了我的问题。

标签: gradle jar spring-boot war


【解决方案1】:

你应该能够做到这一点:

bootRepackage {
    withJarTask jar
}

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-13
    • 2021-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    相关资源
    最近更新 更多