如果有人试图解决类似的问题,请分享您的解决方案。在我的gradle文件中,我有不同的子项目。截至目前,我能够构建具有核心的rest-client,但是也可能存在使用db-client子项目构建rest-client的情况。基本上我的想法是我需要能够构建具有不同依赖性的rest-client。假设一个任务构建依赖于一个项目的rest-client,另一个任务构建依赖于两个子项目的rest-client。
project(':core') {
apply plugin: "groovy"
repositories {
mavenCentral()
}
dependencies {
compile 'org.codehaus.groovy:groovy-all:2.4.5'
testCompile "org.testng:testng:6.8.21"
}
}
//rest-client Project specific stuff
project(':rest-client') {
apply plugin: "groovy"
repositories {
mavenCentral()
}
dependencies {
compile 'org.codehaus.groovy.modules.http-builder:http-builder:0.7.1'
compile project(':core')
compile 'org.codehaus.groovy:groovy-all:2.4.5'
testCompile "org.testng:testng:6.8.21"
}
jar {
from configurations.runtime
}
}
//db-client Project specific stuff
project(':db-client') {
apply plugin: "groovy"
repositories {
mavenCentral()
}
dependencies {
compile project(':core')
compile 'org.codehaus.groovy:groovy-all:2.4.5'
compile 'mysql:mysql-connector-java:5.1.37'
//compile 'org.elasticsearch:elasticsearch:2.3.1'
compile 'org.elasticsearch:elasticsearch-client-groovy:0.10.0'
}
}
答案 0 :(得分:0)
对于迟到的回复感到抱歉,如果你仍然需要这样的东西就是一个例子。
apply plugin: "groovy"
repositories {
mavenCentral()
}
configurations {
projectDep
libraryDep
}
project('core') {
apply plugin: "java"
}
dependencies {
projectDep project(':core')
libraryDep 'my.project:project:0.1.0'
compile 'org.codehaus.groovy.modules.http-builder:http-builder:0.7.1'
compile 'org.codehaus.groovy:groovy-all:2.4.5'
testCompile "org.testng:testng:6.8.21"
}
jar {
from configurations.libraryDep
}
task projectJar(type: Jar) {
appendix = 'project'
from sourceSets.main.output, configurations.projectDep, configurations.runtime
}
你有2个jar任务。 jar从compile,runtime和libraryDep获取所有声明的依赖项,projectJar接受compile,runtime和projectDep。
希望这有帮助。