我有一个主项目依赖于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等未包含在战争中
答案 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
}