Gradle 빌드 아티팩트를 Maven 저장소에 배치하려고하는데 그에 대한 신임 정보를 지정해야합니다. 이것은 현재 잘 작동합니다.
uploadArchives {
repositories {
mavenDeployer {
repository(url: "http://.../nexus/content/repositories/snapshots/") {
authentication(userName: "admin", password: "admin123")
}
}
}
}
그러나 자격 증명을 소스 제어에 저장하는 것을 좋아하지 않습니다. Maven을 사용하면 서버 구성을 정의하고 내 자격 증명을 할당합니다 ~/.m2/settings.xml
. Gradle과 비슷한 것을 어떻게합니까?
답변
~ / .gradle / gradle.properties :
mavenUser=admin
mavenPassword=admin123
build.gradle :
...
authentication(userName: mavenUser, password: mavenPassword)
답변
첫 번째 답변은 여전히 유효하지만 API는 과거에 변경되었습니다. 내 편집 내용이 수락되지 않았으므로 별도의 답변으로 게시했습니다.
이 방법 authentication()
은 인증 방법 (예 : 기본) 만 제공하지만 자격 증명은 제공하지 않습니다.
당신은 또한 그것을 사용하지 말아야 은 실패에 일반 자격 증명을 인쇄 이후로!
이것은 그의 모습이 build.gradle
maven {
credentials {
username "$mavenUser"
password "$mavenPassword"
}
url 'https://maven.yourcorp.net/'
}
에서 gradle.properties
당신의 USERHOME dir을 넣어에서 :
mavenUser=admin
mavenPassword=admin123
또한가 그렇지 않으면 속성 파일로 GRADLE_USER_HOME
설정되어 있는지 ~/.gradle
확인하십시오.
또한보십시오:
https://docs.gradle.org/current/userguide/build_environment.html
과
https://docs.gradle.org/current/userguide/dependency_management.html (23.6.4.1)
답변
명령 줄에 변수를 제공 할 수도 있습니다 -PmavenUser=user -PmavenPassword=password
.
이것은 어떤 이유로 gradle.properties 파일을 사용할 수없는 경우에 유용 할 수 있습니다. 예를 들어 빌드 서버에서 Gradle을 -g
옵션 과 함께 사용하여 각 빌드 계획에 고유 한 옵션이 있습니다 GRADLE_HOME
.
답변
사용자 별 자격 증명이있는 경우 (즉, 개발자마다 다른 사용자 이름 / 암호를 가질 수 있음) gradle-properties-plugin을 사용하는 것이 좋습니다 .
- 기본 설정
gradle.properties
- 각 개발자는로 재정의합니다
gradle-local.properties
(git ignore 여야 함).
$USER_HOME/.gradle/gradle.properties
다른 프로젝트는 동일한 속성 이름을 가질 수 있기 때문에이를 재정의하는 것보다 낫습니다 .
답변
신임 정보를 특성 파일에 넣고 다음과 같이 사용하여 읽을 수 있습니다.
Properties props = new Properties()
props.load(new FileInputStream("yourPath/credentials.properties"))
project.setProperty('props', props)
또 다른 방법은 OS 레벨에서 환경 변수를 정의하고 다음을 사용하여 읽는 것입니다.
System.getenv()['YOUR_ENV_VARIABLE']
답변
MacOS를 구축하고 컴퓨터에 암호를 일반 텍스트로 남기고 싶지 않은 사용자는 키 체인 도구를 사용하여 자격 증명을 저장 한 다음 빌드에 주입 할 수 있습니다. 크레딧은 Viktor Eriksson으로갑니다.
https://pilloxa.gitlab.io/posts/safer-passwords-in-gradle/