我想将我的工件上传到远程Nexus存储库。因此我在Nexus中配置了快照和发布回购。部署到两个作品。在Gradle构建中配置多个上传存储库
现在,我想我的生成配置,所以我可以决定在回购我想部署:
gradle uploadArchives
应该部署到我的快照回购gradle release uploadArchives
应该部署到我发布回购
这是我尝试:
apply plugin: 'war'
apply plugin: 'maven'
group = 'testgroup'
version = '2.0.0'
def release = false
repositories {
mavenCentral()
mavenLocal()
}
dependencies{ providedCompile 'javax:javaee-api:6.0' }
task release <<{
release = true;
println 'releasing!'
}
uploadArchives {
repositories {
mavenDeployer {
repository(url: "http://.../nexus/content/repositories/releases"){
authentication(userName: "admin", password: "admin123")
}
addFilter('lala'){ x, y -> release }
}
mavenDeployer {
repository(url: "http://.../nexus/content/repositories/snapshots"){
authentication(userName: "admin", password: "admin123")
}
addFilter('lala'){ x, y ->!release}
pom.version = version + '-SNAPSHOT'
}
}
}
如果我注释掉两个mavenDeployer配置中的一个,但不能作为一个整体,构建工作。
任何想法如何在一个构建文件中配置两个目标档案?
我想我找到了一个更好的解决方案(纠正我,如果我错了):只需添加另一个配置(例如releaseArchives)。然后,我可以添加两个回购站,一个用于uploadArchives(快照),另一个用于uploadReleaseArchives(刚发布)。另一个优点是,我不必在发布时更改项目版本。也许你可以告诉我,我的解决方案是否不好,然后我会接受你的答案,或者我的解决方案是好的/更好的,然后我会回答我的问题并接受我的答案。由于我是新来的Stackoverflow,我不知道接受自己的答案是不好的做法.... – huzi 2013-02-11 15:51:33
只要您将其配置为包含相同的工件,添加其他配置也应该工作。无论如何,您必须使用快照工件的快照版本。否则,客户不会认识到这一点。 – 2013-02-11 18:30:30
@huzi能否请您发表您自己的答案,而不必更改版本代码会好得多 – 2015-05-18 09:29:49