我正在使用gradle 4.1 我的项目有五个模块。构建后,我在每个模块中生成五个罐子。 我的目标是创建一个zip存档并将其上传到artifactory服务器。 我只能在完成其他模块的构建时使用我的jar生成我的zip部署工件。我看到它从libs目录复制jar,但我正在寻找一种方法来在项目的整体构建之后执行此操作。我看了一些dependsOn的例子,但它似乎没有用。 这就是我所拥有的:
apply plugin: 'distribution'
distributions {
main {
baseName = 'b-deploy'
contents {
from { "b-model/build/libs/b-model-${version}.jar" }
from { "b-wsdl/build/libs/b-wsdl-${version}.jar" }
from { "b-common/build/libs/b-common-${version}.jar" }
from { "b-rest/build/libs/b-rest-${version}.jar" }
from { "b-soap/build/libs/b-soap-${version}.jar" }
}
}
}
答案 0 :(得分:2)
创建自定义配置以容纳所有可部署的内容:
configurations {
deployable {
transitive = false
}
}
在该配置中收集ZIP中所需的所有内容。请注意如何在此处添加第三方库:
dependencies {
deployable project(path: ':a')
deployable project(path: ':b')
deployable 'com.google.guava:guava:22.0'
}
然后,为该ZIP创建一个任务:
task deployableZIP(type: Zip) {
dependsOn configurations.deployable
baseName = 'gradle-deploy'
destinationDir = buildDir
configurations.deployable.collect {
from it
}
}
最后,配置发布:
publishing {
publications {
main(MavenPublication) {
artifact source: deployableZIP, extension: 'zip'
}
}
}
应该做的伎俩。
答案 1 :(得分:1)