build.gradle子标记配置依赖项未添加到战争中



我有一个主要项目,该项目取决于2个子项目。所有3个项目都有一个称为服务器的自定义配置。

当我执行以下战争任务时,只有主要项目配置中的依赖项就会添加到战争中。

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

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

编辑:

这是我的构建文件的一些片段。

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等在战争中并没有捆绑

实际上," classpath"是属性,而不是方法,因此将两个分配替换为单个分配,其值为" configurations.server.server configurations.compile"。

我能够解决以下内容(多大维大卫提供的链接):

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
}

最新更新