'Maven'에 해당되는 글 3건

  1. 2014.10.01 [ nexus ] 3. 배포
  2. 2014.09.30 [ nexus ] 2. 설정
  3. 2014.09.24 [ nexus ] 1. 설치



nexus 설치와 설정이 끝났으니 개발한 프로젝트를 배포 해보도록 하자.

관점을 두가지로 볼수 있다. 

  • jar 를 배포하는 개발자 
    • setting.xml에 배포 서버 정보( 계정 정보 )를 입력해야한다. 
    • pom.xml에 snapshot, releases 서버 정보를 입력 해야한다. 
  • 배포된 jar를 사용하는 개발자.
    • pom.xml에 maven repository 정보를 입력해야한다. 



1. jar 배포자 

  • setting.xml 수정
 
<servers>
	<server>
		<id>test-release</id>
		<username>testuser</username>
		<password>test</password>
	</server>
	<server>
		<id>test-snapshots</id>
		<username>testuser</username>
		<password>test</password>
	</server>
</servers>


snapshot 과 release repository를 설정 해야하며 id는 각 repository 생성시 적었던 id를 입력 한다. 

그리고 username/password는 앞에서 등록한 사용자 계정을 입력한다. ( repository 권한을 가지고 있는 계정 )


  • pom.xml 수정

    
        test-group      
        test-group  
        http://{your-ip}/nexus/content/groups/test-group/
    

       

    
        test-release     
        test-release 
        http://{your-ip}/nexus/content/repositories/test-release/
    
    
        test-snapshot     
        test snapshot 
        http://{your-ip}/nexus/content/repositories/test-snapshot/
    

  • eclipse 배포
eclipse 에서 배포 Eclipse에서 Window > Preferences > Maven > User Settings를 클릭 하면 다음 과같이 나오는데 여기서 Update Setting을 클릭하여 위에서 추가한 내용이 반영되도록 한다. 



maven 프로젝트를 eclipse에 하나 생성 ( nexus-sample ) 하고 위에 작성한 pom.xml 내용을 반영한다. 

빨간색 박스처럼 version에 "-SNAPSHOT" 이라고 하면 snapshot repository로 배포가 되고 빼면 release repository에 배포가 된다.

snapshot은 같은 버전으로 여러번 배포 가 가능하며 ( 개발시 자주 바뀌므로 사용한다. ) 

release는 같은 버전으로 한번 밖에 배포할수 없다. ( 다시 배포하려면 서버에서 지우고 배포해야한다. )



배포 실행을 다음과 같이 한다.





배포까지 끝나면 nexus에서 배포된 내용을 볼수 있다. 






2. 배포된 jar를 사용하는 개발자.
이제 nexus 권한을 적용해서 프로젝트에서 어떻게 사용해야하는지 보자.

사전 작업이 있는데 
  • setting.xml 에서 <servers></servers> 내용을 삭제한다.
  • .m2\repository\kr\co\jabsiri\nexus-sample folder를 삭제한다. ( eclipse를 닫아야 지워질 것이다. )
  • 배포 프로젝트 ( nexus-sample ) 지우던지 close 시킨다. 

위의 작업이 끝났으면 우선 http://{your-ip}/nexus/content/groups/test-group/ 로 접속 해 보면 다음과 같이 접속이 될 것이다. 


그럼 nexus에 접속해서 User중에 anonymous 를 보면 Role Management에 Repo All Repositoreis (Read) 권한이 있는게 보이는데 즉 누구나 모든 Repository를 볼수 있다는 것이다. anonymous를 Disabled 로 바꾸고 저장한다.


다시 http://{your-ip}/nexus/content/groups/test-group/ 에 접속 해보면 다음과 같이 로그인을 하라고 나온다. 


test-group의 repository는 계정을 알 고 있는 사람만 접근 가능하게 바뀐 것이다.




이 내용을 eclipse에서 해보자 


다시 maven 프로젝트를 하나 eclipse에 생성하고 ( nexus-sample-dependency ) 위에서 deploy한 프로젝트를 dependency에 추가하자


		
  			kr.co.jabsiri
  			nexus-sample
  			0.0.1-SNAPSHOT
		


위의 내용을 pom.xml에 입력하면 프로젝트는 다음과 같이 에러가 날 것 이다. 접근 권한 이 없기 때문이다.




프로젝트의 에러를 없애기 위해 setting.xml에  test-group repository에 접근할 수 있는 계정 정보를 입력하고 

	 
		test-group
		testuser
		test
	



Eclipse에서 Window > Preferences > Maven > User Settings를 클릭한 후 Update Setting을 하고


프로젝트에서 우클릭 > Maven > Update Project... Force Update of Snapshots/Releases 를 선택하고 OK를 클릭하면 


 



프로젝트 에러는 없어지고 아래 이미지 처럼 Maven Dependencies에 jar파일이 추가 된다. 





실제 프로젝트 개발시 Maven Repository 접근 권한을 부여하며 개발 하는 일은 별로 없을 태지만 

코어 개발과 그 코어 개발내용을 이용하겨 개발 하는 경우,

library의 버전 관리등 에서 활용하여 사용 할수 있을 것이다. 




'설치&설정 관련' 카테고리의 다른 글

[DBMS]H2 사용기  (0) 2014.11.14
[DBMS]HSQLDB 사용하기  (0) 2014.11.12
[ nexus ] 3. 배포  (0) 2014.10.01
[ nexus ] 2. 설정  (0) 2014.09.30
[ nexus ] 1. 설치  (0) 2014.09.24
Jenkins 설치  (0) 2014.05.23
Posted by jabsiri
TAG Maven, NEXUS









nexus를 설치 하면 기본으로 하고 3rd party와 public repository 등을 사용 할수 있지만 여기서는 사용자를 추가하여 권한을 만들어 보려고 한다. 


1. Repository 추가

Repository는 다음과 같은 종류가 있다. 


Hosted Repository : 

Snapshot, Releases 두 개의 타입이 있는데 개발한 JAR 파일을 ( 회사나 개인이 개발한 ) Repository에 배포하여 다른사람이 사용할수 있게 해주는 역활을 한다.

Snapshot은 개발용, Releases는 제품 용이 Repository가 되며 Snapshot은 개발을 하기때문에 개발중에 같은 버전으로 계속 배포가 가능하지만, Releases 는 제품 용이기에 같은 버전으로 한번밖에 배포가 되지 않는다.

Proxy Repository : 

외부에 제공되는 repository 가 있는경우 ( 예 : jboss : https://repository.jboss.org/nexus/index.html ) proxy repository 에 등록하여 사용할수 있다.

Virtual Repository :  잘 모르겠다.;;;

Repository Group : 

생성 되어 있는 repository를 하나로 묶어 별도의 url를 생성할수 있다.



그럼 왼쪽 메뉴에서 Repositories를 선택후 Add > Hosted Repository를 클릭한다.



등록 화면이 나오면 

Repository ID, Provider, Repository Policy를 정하고 저장을 누른다.

여기서 Repository ID는 해당 Repository의 url 이 된다. ( https://{your ip}/nexus/content/repositories/test-release )



Snapshot 용도로 repository를 한번더 생성한다. 

(  Repository ID를 test-snapshot으로 하고 Repository Policy 도 snapshot으로 한다. )


목록에 다음과 같이 나오는 것을 확인 할수 있다. 


마지막으로 위에서 만든 repository와 central , 3rd party를 묶은 group repository를 만들어야 하는데. 개인적으로 이 그룹은 어떻게 조합를 하냐에 따라 프로젝트 배포에 여러가지 장단점들이 있을수 있다고 생가한다. ( 글로 설명이 힘듦..ㅠㅠ )

여기서는 기본 적인 Releases, Snapshots와 Public Repositories를 제외하고 모두 포함 시키도록 하겠다.


아래그림에서 왼쪽이 포함 시킬 Repository 이고 오른쪽이 포함 하지 않을 Repository이다.


http://{yourip}/nexus/content/groups/test-group/ 로 접속할수 있는 repository가 만들어 졌다.

(3rd paty, test release, test snapshot 등등 포함한 )



2. Repository 권한


다음으로는 생성한 Repository에 대해 CRUD 권한을 주도록 한다.


  • Privileges 설정

왼쪽 Security > Privileges 가 나오는데 test로 검색을 하면 아래와 같이 위에서 등록한 repository가 나온게 된다.


Add... > Repository Target Privilege 른 선택하고 입력을 다음과 같이 입력하고 저장한다.


아래와 같이 CRUD가 추가된것을 볼수 있다.


  • Roles 설정

Security > Roles 에서 Add...>Nexus Role 을선택한다.

그리고 아래와 같이 입력한다.

Role/Privilege Management 에는 위에서 생성한 CRUD와 group의 view를 포함해서 만든다.



3. User 생성

Security > Users를 선택하고 Add...>Nexus User를 선택한다.

그리고 입력 사항들을 적고. Role Management에 위에서 생성한 test-role과 기본으로 제공하는 Nexus Deployment Role을 선택하고 저장한다.( development Role 이 아니다. )




해당 계정으로 다시 로그인하면 다음과 같이 test-group 의 repository만 보이게 된다. 

물론 이 repository는 group 이기에 해당 그룹에 포함된 repository의 묶음이다. 









'설치&설정 관련' 카테고리의 다른 글

[DBMS]HSQLDB 사용하기  (0) 2014.11.12
[ nexus ] 3. 배포  (0) 2014.10.01
[ nexus ] 2. 설정  (0) 2014.09.30
[ nexus ] 1. 설치  (0) 2014.09.24
Jenkins 설치  (0) 2014.05.23
chome을 이용한 로컬 html에서 서버 데이터 호출  (0) 2014.05.23
Posted by jabsiri
TAG Maven, NEXUS




1. 설치


Nexus는 무료로 제공되는 maven repository 중 하나이다.


http://www.sonatype.org/nexus/go 에 가서 파일을 다운로드 받는다. 이글을 적는 시점의 version은 2.9.1-02 이다.

( 나는 tar.gz 파일을 받았다. 만약 war 파일을 받으면 원하는 was에 배포만 하면 끝난다.  tar.gz 파일을 받으면  nexus는 jetty로 띄울 것이다. )


 파일을 서버에 올리고 압축을 풀면 다음의 두 폴더가 생긴다. 

   nexus-2.9.1-02

   sonatype-work


 - 참고 - 

 2.9.1-02 저번은 jdk 1.7 version 이상이 필요하다.

 나는 서버에 1.6이 설치 되어 있었는데. 1.7을 추가로 설치하고 nexus 실행을 위해 1.7 설치버전을 바라보게 설정을 수정했다. 


 nexus-2.9.1-02/bin/jsw/conf/wrapper.conf 파일을 열어보면 


 wrapper.java.command=java

 라고 되어 있는 항목이 있는데 java를 jdk1.7이 설치된 경로로 다음과 같이 바꿔주면 된다. 

 wrapper.java.command=/usr/local/java/jdk1.7.0_67/bin/java



nexus-2.9.1-02/bin/nexus start

명령어를 입력하면 nexus가 실행 된다. 

- TIP -

WINDOWS에서 nexus 실행시, Unable to start the service 오류 발생시 해결 방법


Windows의 경우 상위 명령어를 입력하면 service에 등록하려는 작업을 하는데, WINDOWS7 이상 버젼에서는 해당 프로세스 실행시 다음과 같은 오류가 발생 할 수 있다.

이럴 경우, service를 등록하지 않고 console로 바로 실행 할 수 있는 

>$NEXUS_HOME$\bin\jsw\windows-x86-64\console-nexus.bat

를 실행하면 문제없이 기동 된다.



http://localhost:8081/nexus/ 로 접속을 하고 기본 admin 계정인 admin / admin123  으로 로그인이 가능하다.

( nexus의 posrt는 nexus-2.9.1-02/conf/nexus.properties 파일에서 application-port=8081 부분을 바꿔주면 된다. )




2. Central repository 설정 변경

Repositories > Central > Configuration 을 선택 하면 하단에 "Download Remote Indexes"가 보인다. 기본 False로 되어 있는데 이것을 True로 바꾸고 저장을 한다. 


이것은 maven central repository의 indexes 다운 받아 local에 똑같이 만드는 것이다. 

이는 설치한 nexus에서도 maven central 에 있는 파일을 검색 할수 있게 해준다. 


Browse Index 를 보면 Maven Central에서 index를 받아온 것을 볼수 있다. 



















'설치&설정 관련' 카테고리의 다른 글

[ nexus ] 3. 배포  (0) 2014.10.01
[ nexus ] 2. 설정  (0) 2014.09.30
[ nexus ] 1. 설치  (0) 2014.09.24
Jenkins 설치  (0) 2014.05.23
chome을 이용한 로컬 html에서 서버 데이터 호출  (0) 2014.05.23
Jeus 한글 깨짐 현상  (0) 2014.05.08
Posted by jabsiri
TAG Maven, NEXUS