如何告诉gradle在SNAPSHOT版本上执行uploadArchives?

时间:2014-10-11 13:02:49

标签: maven upload gradle android-gradle snapshot

我的build.gradle中有以下内容:

uploadArchives {
  repositories {
    mavenDeployer {
      configuration = configurations.deployerJars
      String keyFile = "/Users/myusername/.ssh/maven@myhost"

      repository(url: "scp://myhost.com/var/maven/repository") {
        authentication(userName: "maven", privateKey: keyFile)
      }
    }
  }
}

这很有用 - 有一点需要注意:它只上传发布版本。我知道我可以指定snapshotRepository来上传快照,但我真正想知道的是如何调用此行为。我希望我的快照能够与发布版本(我认为是默认行为)进行相同的回购,但是当我这样做时:

./gradlew uploadArchives./gradlew assembleDebug uploadArchives

它首先构建release buildType,然后上传它。我怎么能告诉uploadArchives我希望它上传快照构建(即调试)?

2 个答案:

答案 0 :(得分:2)

您需要将versionName与-SNAPSHOT

放在一起
[Month]

然后[Day of Month]会将其上传到snaphots存储库。

答案 1 :(得分:1)

我花了一些谷歌搜索找到一个解决方案,所以留在这里为其他人:

您可以根据uploadArchives任务创建新任务,但检查版本并删除dependsOndisable任务,如果不是快照,例如:

task uploadSnapshotArchives(dependsOn: uploadArchives) {
    if (!version.endsWith("-SNAPSHOT")) {
        enabled = false;
        dependsOn = [];
    }
}