gradle subProject配置依赖项未添加到war中

时间:2016-06-18 00:18:54

标签: gradle build.gradle

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

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

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

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

编辑:

以下是我的构建文件的一些片段,用于上下文。

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
}

subProject build.gradle

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

当我运行fatWar任务时,mysql-connector.jar等未包含在战争中

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我能够解决这个问题(感谢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
}