maven repository 계정 정보 암호화하기
artifact 를 deploy 할때 repository 정보를 기술해야 하는데 plain text 로 암호를 쓰면 보안상의 문제가 발생할 수 있으므로 다음 절차에 따라 password 를 암호화해서 사용하자.
Master Password 생성
- mvn --encrypt-master-password <password>
다음과 같이 마스터 암호가 표시된다.
{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}
위 암호를 ~/.m2/settings-security.xml 에 다음 형식으로 붙여 넣는다.
<settingsSecurity> <master>{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}</master> </settingsSecurity>
Server 의 password 암호화
서버의 password 를 암호화하기 위해 다음 명령 실행
mvn --encrypt-password <password>
암호화된 password 가 생성
{COQLCE6DU6GtcS5P=}
위 암호를 settings.xml 의 server 항목의 <password/> 에 복사
<settings> ... <servers> ... <server> <id>my.server</id> <username>foo</username> <password>{COQLCE6DU6GtcS5P=}</password> </server> ... </servers> ... </settings>
암호만 괄호 사이에 맞게 있으면 되고 기타 문자열은 무시된다. 그러므로 주석등이 필요하면 기술할 수 있다. (이 방법보다는 git 으로 형상관리하는걸 추천)
<settings> ... <servers> ... <server> <id>my.server</id> <username>foo</username> <password>Oleg reset this password on 2009-03-11, expires on 2009-04-11 {COQLCE6DU6GtcS5P=}</password> </server> ... </servers> ... </settings>
- mvn deploy:deploy 를 실행해서 정상적으로 인증을 통과하는지 확인한다.