我正在使用gradle脚本,我有两个单独的认知列表和其他依赖项列表。
列表1:
cognos:a:10.1.1
cognos:b:10.1.1
cognos:c:10.1.1
cognos:d:10.1.1
com:axis:2.0.3
com:webroot:5.0.3
和清单2:
cognos:a:10.2.2
cognos:b:10.2.2
cognos:c:10.2.2
cognos:d:10.2.2
traven:nt:10.5.0
traven:txtx:5.2.1
我需要首先使用list 1依赖项编译我的源代码,然后列出2个依赖项,并在artifactory中以下面的名称发布工件。
包含列表1和列表2依赖项的工件
abc-1.0.0-cognos10.1.1
abc-1.0.0-cognos10.2.2
我可以使用build.gradle来完成它但我可以在两个单独的build.gradle脚本中完成它。我不知道如何在signle build.gradle脚本中实现这个目标。可能有人知道如何实现它在单个build.gradle中
apply plugin: 'java'
version = '1.0'
sourceCompatibility = 1.7
targetCompatibility = 1.7
//create a single Jar with all dependencies
task fatJar(type: Jar) {
manifest {
attributes 'Implementation-Title': 'Gradle Jar File Example',
'Implementation-Version': version,
'Main-Class': 'com.mkyong.DateUtils'
}
baseName = project.name + '-all'
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
with jar
}
//Get dependencies from Maven central repository
repositories {
mavenCentral()
}
//Project dependencies
dependencies {
compile 'cognos:a:10.1.1
compile 'cognos:b:10.1.1'
compile 'cognos:c:10.1.1'
compile 'cognos:d:10.1.1'
compile 'traven:nt:10.5.0'
compile 'traven:txtx:5.2.1'
}
答案 0 :(得分:0)
在build.gradle中,将cognos和app version替换为参数:
version = "1.0.0-cognos${cognosVersion}"
sourceCompatibility = 1.7
targetCompatibility = 1.7
...
dependencies {
compile "cognos:a:${cognosVersion}"
compile "cognos:b:${cognosVersion}"
compile "cognos:c:${cognosVersion}"
compile "cognos:d:${cognosVersion}"
}
然后你可以手动运行几次:
gradle build -PcognosVersion=xxxx
如果你想自动化它,你可以编写第二个gradle驱动程序脚本release.gradle:
defaultTasks 'performRelease'
task performRelease() << {
['10.1.1','10.2.2'].each{
def tempTask = tasks.create(name: "execute_$it", type: GradleBuild)
tempTask.buildFile='build.gradle'
tempTask.tasks = ['build']
tempTask.startParameter.projectProperties = [cognosVersion: it]
tempTask.execute()
}
}
您可以执行:gradle -b release.gradle