如何使用Gradle中的参数上传包含多个存储库的存档?

时间:2017-09-09 08:29:06

标签: java android maven gradle build.gradle

在我的gradle项目中,我想将jar上传到多个maven存储库,所以我执行以下操作:

uploadArchives {
    repositories {
        mavenLocal()
        mavenDeployer {
            repository(url: maven_repo_1) {
                authentication(userName: maven_user_1, password: maven_password_1)
            }
            repository(url: maven_repo_2) {
                authentication(userName: maven_user_2, password: maven_password_2)
            }
        }
    }
}

我的问题是:

  1. 这是一次上传到多个maven存储库的正确方法吗?
  2. 有没有办法使用参数上传到特定的maven存储库? I.e uploadArchives -r mavenLocal
  3. 注意: 以前我不得不删除maven存储库并运行uploadArchives,我不认为这是最好的做法。但是我找不到用参数上传它的文档。

1 个答案:

答案 0 :(得分:0)

您可以做的是使用 project property 选择正确的配置。

例如,如果您想默认部署到远程存储库,但使用切换到本地存储库的参数:

uploadArchives {
    repositories {
        if (project.hasProperty('localRepoPath')) {
            mavenDeployer {
                repository(url: uri(project.getProperty('localRepoPath')))
                ...
            }
        } else {
            mavenDeployer {
                repository(url: maven_repo_1)
                ...
            }
        }
    }
}

然后,调用:

# Local upload
./gradlew uploadArchives -PlocalRepoPath=/tmp/maven

# Public upload
./gradlew uploadArchives

您可以根据自己的需要调整这种方法。