我开始使用Jenkins,SCM,Nexus和Android-Gradle进行持续改进.我在Gradle中有一个任务是将AAR文件上传到我的Nexus存储库,如果我从我的计算机执行它,它就可以找到它.任务是' install ',gradle-code如下:
// upload to our nexus repository uploadArchives { repositories { // the maven plugin features this deployer mavenDeployer { // we deploy to the release repository in this case repository(url: "https://nexus1.xxxxx.com/nexus/content/repositories/releases") { authentication(userName: getRepositoryUsername(), password: getRepositoryPassword()) } // pom project information pom.project { version android.defaultConfig.versionName artifactId 't21-android-commons-utils' name 'T21 Android Commons Utils Lib' packaging 'aar' } } } } task install(dependsOn: uploadArchives)
身份验证函数调用getRepositoryUsername()和getRepositoryPassword()以从gradle.properties读取凭据.但我不想在我们的SCM中公开这个文件,它应该不安全.
当我将代码推送到我们的SCM时,Jenkins注意到它并执行一项工作来完成一些gradle-task,包括' install '.它工作正常但" 安装 "无法向Nexus服务器进行身份验证,因为找不到gradle.properties(正如预期的那样).
所以,我想知道我应该怎么做"认证安装从詹金斯的gradle这个任务.
我正在考虑在Nexus中创建一个具有权限的通用Jenkins用户,但我不知道如何在gradle和Jenkins中调用.
我希望能够解释清楚.抱歉我的英语不好......
我回应自己.
可以使用-Pparameter = value将参数传递给Gradle,这对我很有用.我把它放在Jenkins工作的开关盒中.
现在,凭据在Jenkins Job中,但不在SCM中,因此源代码是干净的凭据.