【问题标题】:gradle subProject configuration dependencies not being add to wargradle subProject 配置依赖项未添加到战争中
【发布时间】:2016-06-18 00:18:54
【问题描述】:

我有一个依赖于 2 个子项目的主项目。所有 3 个项目都有一个名为 server 的自定义配置。

当我有以下war任务时,只有主项目configuration.server中的依赖项被添加到war中。

task fatWar(type: War) {
    archiveName = "arms-fat.war"
    classpath configurations.server
    classpath configurations.compile
}

如何将子项目服务器配置依赖添加到war中?

编辑:

这里有一些我的构建文件的 sn-ps 用于上下文。

rootProject build.gradle

configurations {
    server
}
dependencies {
    server 'org.glassfish.jersey.media:jersey-media-multipart:2.22.2'
    ...
}
task fatWar(type: War) {
    archiveName = "arms-fat.war"
    classpath configurations.server
    classpath configurations.compile
}

子项目 build.gradle

configurations {
    server
}
dependencies {
    server 'mysql:mysql-connector-java:5.1.38'
    ...
}

当我运行 fatWar 任务时,mysql-connector.jar 等并没有捆绑在战争中

【问题讨论】:

  • 抱歉,我遗漏了子项目的详细信息。我不知道如何解决这个问题。在 Gradle 讨论论坛中发布详细问题。
  • 查看这篇帖子中的 cmets:discuss.gradle.org/t/…
  • 感谢您的链接。我能够通过 subproject.each 闭包解决我的问题

标签: gradle build.gradle


【解决方案1】:

其实“classpath”是一个属性,而不是一个方法,所以将这两个赋值替换为一个,其值为“configurations.server + configurations.compile”。

【讨论】:

  • 问题是没有添加子项目configurations.server(在单独的build.gradle中)。只添加了rootProject服务器和rootProject和subProjects编译配置。
  • 是的,我很困惑。我认为我修改后的答案更有可能。
  • 它仍然缺少子项目配置。服务器依赖项
【解决方案2】:

我能够通过以下方式解决这个问题(感谢 David 提供的链接):

subprojects.each { subproject -> evaluationDependsOn( subproject.path ) }

task fatWar(type: War) {
    archiveName = "arms-fims-fat.war"

    subprojects.each { subproject ->
        project.configurations.server.dependencies.addAll(subproject.configurations.server.dependencies)
    }

    classpath configurations.server
    classpath configurations.compile
}

【讨论】:

    猜你喜欢
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 2014-12-24
    • 1970-01-01
    • 2014-07-26
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多