日常工作中我们用gradle构建项目时需要将构建结果上传到maven私服,gradle提供了maven-publish插件来帮助我们上传。maven-publish插件的功能简单而强大,参考这里 即可。
但是文章中没有提供用户密码的配置。
虽然可以在repositories.maven.redentials 中指定 username 以及 password:
publishing {
repositories {
maven {
credentials {
username xxx
password xxx
}
}
}
}
但这样一来我们的代码上传到代码仓库时就暴露了用户密码 。。
下面直接给出将用户密码写在环境变量的解决方案:
plugins {
id 'maven-publish'
}
publishing {
publications {
maven(MavenPublication) {
from components.java
artifact sourceesJar {
// ...
}
pom {
name = xxx
description = xxx
url = xxx
developers {
developer {
id = 'landas'
name = 'landas'
email = 'landas@qq.com'
}
}
scm {
url = ...
}
}
}
}
repositories {
maven {
url = version.endsWith('SNAPSHOT') ? snapshotRepo : releaseRepo
credentials {
username System.getenv("MAVEN_USER")
password System.getenv("MAVEN_PSWD")
}
}
}
}
注意这里的环境变量 MAVEN_USER/MAVEN_PSWD 是执行 publish 任务的环境变量。
如果是本地那就是操作系统变量,如果是线上那就是执行CICD时的上下文。
Fin ~
来源:oschina
链接:https://my.oschina.net/landas/blog/4280122