nexus는 버전 이슈가 많고 발전이 더딘 것 같다. (특히 자바와 최신 nexus 버전 이슈가 좀 있는 것 같다.) 문서도 예전 버전이고, 신선함이 사라져가는 느낌이다.
artifactory의 큰 장점은 편리하고 개선되는 UI, HA, docker, webdav, rest api, 다양한 설치본(jar 뿐 아니라. npm, docker..)에 대한 proxy 기능, 완전 좋은 문서화이다. 생전 처음 artifactory 써봤는데, 아주 만족스럽다. (gradle 프로젝트하면서 지원하는 프로젝트가 jcenter쪽 repostiory가 jfrog였는데. 지원 벤더가 jfrog였는데, artifactory도 jfrog가 지원한다.)
1) 설치
java 설치
artifactory 4.4 설치 (최소 java8 이상)
(docker로 쓸 수 있지만, 굳이..)
2) 설정
https://www.jfrog.com/confluence/display/RTF/System+Requirements
JAVA_HOME JRE_HOME 설정하기
$ARTIFACTORY_HOME/bin/artifactory.default의 memory 설정을 변경
-server -Xms10g -Xmx10g -Xss512k -XX:+UseG1GC
3) 서버 실행
$ARTIFACTORY_HOME/bin/artifactory.sh 으로 실행하면 foreground로 실행된다.
$ARTIFACTORY_HOME/bin/artifactoryctl start 또는 $ARTIFACTORY_HOME/bin/artifactory.sh start로 실행한다.
4) 웹 서버 확인
http://localhost:8081/artifactory/
문제시 logs 밑에 로그를 확인한다.
5) 보안 강화
https://www.jfrog.com/confluence/display/RTF/Configuring+Security
admin/password 디폴트 패스워드에서 admin메뉴의 security에 들어가 패스워드 변경
6) virtual 묶음
https://www.jfrog.com/confluence/display/RTF/Virtual+Repositories
내부 repository와 & 외부 repository 묶어서 maven, gradle, sbt 파일에서 repository는 새로 설치된 서버만 바라보게 설정.
7) nginx 설정
https://www.jfrog.com/confluence/display/RTF/nginx
제일 중요한 것은 client_max_body_size이다. 이거 안 쓰거나 너무 작은 크기이면, 413 에러 발생한다.
http://www.cyberciti.biz/faq/linux-unix-bsd-nginx-413-request-entity-too-large/
8) 로컬에서 확인
pom.xml에 repository 추가/변경 후 rm -f ~/.m2/ 후, mvn clean compile 로 확인
9) deploy 계정 확인
mvn deploy시 jar 업로드 할 때, 권한 관리를 한다.
anonymous하게 jar deploy되게 하려면, 따로 설정해야 한다. 그렇지 않으면 401 에러가 발생한다.
만약 권한 없이 deploy되게 하려면, security->users 메뉴에서 anonymous에 deploy/cache 기능에 checkbox되도록 수정한다. (edit anonymous user)
만약 권한 설정하려면 아래와 같이 진행한다.
http://jeroenmols.com/blog/2015/08/13/artifactory2/
10) deploy 확인
mvn deploy이 잘되는지 확인한다.
용량 관리 및 GC설정
https://www.jfrog.com/confluence/display/RTF/Managing+Disk+Space+Usage
주기적인 백업
https://www.jfrog.com/confluence/display/RTF/Managing+Backups
빠른 읽기
https://www.jfrog.com/confluence/display/RTF/Remote+Repositories
- Eagerly Fetch Sources, Eagerly Fetch Jars
관련 lib를 백그라운드로 받도록 설정한다.
play1은 iBiblio를 사용한다. (virtual repo를 사용할 수도 있다.)
type: iBiblio
root: "http://artifactory.google.com:8081/artifactory/google-repo".
https://www.playframework.com/documentation/1.2.x/dependency
https://www.jfrog.com/confluence/display/RTF/Working+with+Ivy#WorkingwithIvy-TheIBiblioResolver
'etc tools' 카테고리의 다른 글
[git] git log 범위 (0) | 2016.08.24 |
---|---|
[git] git hash 얻기 (0) | 2016.08.24 |
[gradle] provided compile (0) | 2015.11.30 |
gradle 2.9 - 50% 줄어든 컴파일 속도 (0) | 2015.11.26 |
[git] Github의 ssh key 이슈 (0) | 2015.11.04 |