'Nexus'에 해당하는 글 3건

1. 이클립스에 메이븐 플러그인 설치

 

[Help] - [Install New Software...] - [Add...]
Name : Maven
Location : http://download.eclipse.org/technology/m2e/releases

 

 

2. 메이븐 웹 어플리케이션 프로젝트 생성

 

[File] - [New] - [Project...] - [Maven] - [Maven Project] - [Select Workspace location]
Catalog : Internal
Group Id : org.apache.maven.archetypes
Artifact Id : maven-archetype-webapp

 

사내 저장소가 있다면,
Catalog: Nexus Indexer
Catalog File: Nexus Archetype URL ( ex: http://oops4u.com:8081/nexus/content/groups/public )

 

만약 사내저장소에 maven-archetype-webapp 이 없다면 [Add Archetype] 클릭하여 설치.
Group Id : org.apache.maven.archetypes
Artifact Id : maven-archetype-webapp
Version : 1.0
URL : http://repo1.maven.org/maven2/

 

 

3. 생성된 webapp 디렉토리 구조

 

 

 

4. index.jsp 출력하기

 

내장된 Tomcat 서버를 사용하여 동적 웹 어플리케이션으로 현재 프로젝트를 실행하기 위해 tomcat:run goals를 입력합니다.
[Run As...] - [Maven build...]
Goals : tomcat:run -> 실행

 

http://localhost:8080/v1 -> Hello World! 확인

 

 

5. Project Facet 추가

 

동적 웹페이지 컨텐츠의 생성을 위해 Java Servlet API 에 대한 지원을 추가합니다.
<Project> - [Properties] - [Project Facets] - [Dynamic Web Module 2.4] 체크 - [Further configuration available...]
Content directory: src/main/webapp

 

서블릿 관련 디렉토리가 추가되었습니다.
 - src/main/java
 - src/test/java

 

 

6. war 생성

 

[Run As...] 에 [Maven package] 메뉴가 없습니다. 저만 없는건지;
[Run As...] - [Maven build...] 에서 Goals 항목에 package 를 등록합니다.


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  0개가 달렸습니다.
secret

Nexus Group

Tool/Maven 2013. 5. 14. 23:09

중앙 저장소를 Nexus로 변경하려면 ~/.m2/settings.xml 파일을 변경해야 합니다.
Nexus를 사내 개발로 사용하려면, releasessnapshots를 포함하는 하나의 Nexus group을 구성해야 합니다.
공개 group에 snapshot저장소를 추가하고 Maven의 ~/.m2/settings.xml 파일에 mirror 구성을 추가합니다.
이 설정은 Nexus 설치 후에 기본적으로 되어 있습니다.

 

 

 

 

하나의 Nexus 그룹을 구성하기 위해 하나의 profile 을 정의합니다.
Super POM에 정의되어 있는 central 저장소를 재정의하여 <repository />와 <pluginRepository />를 구성합니다.
그리고 <mirror />에 URL도 재정의하여 Nexus 그룹의 URL을 가리키도록 합니다.

 

$ vi ~/.m2/settings.xml
<settings>

  <mirrors>
    <mirror>
      <!--This sends everything else to /public -->
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>http://domain.com:8081/nexus/content/groups/public</url>
    </mirror>
  </mirrors>

  <profiles>
    <profile>
      <id>nexus</id>
      <!--Enable snapshots for the built in central repo to direct -->
      <!--all requests to nexus via the mirror -->

      <repositories>
        <repository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
      </repositories>

      <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
      </pluginRepositories>

    </profile>
  </profiles>

  <activeProfiles>
    <!--make the profile active all the time -->
    <activeProfile>nexus</activeProfile>
  </activeProfiles>
</settings>

 

이후에 중앙 저장소와의 모든 작업들은, http://repo.maven.apache.org/maven2 가 아닌
http://domain.com:8081/nexus/content/groups/public 와 하게 됩니다.


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  0개가 달렸습니다.
secret

Deploy to Nexus

Tool/Maven 2013. 5. 13. 18:22

Internal Repository

 

Private remote internal repository 은 내부(사내) 저장소라고 합니다.
프로젝트 개발시 모든 구성원이 중앙 저장소로부터 필요한 라이브러리를 다운로드 할 수 있지만, 구성원간에 공유해야 하는 별도의 리소스를 공유, 관리하기 위해 사내 저장소가 필요합니다.
사내 저장소 구성을 위해 Nexus, Artifactory 등의 OSS 를 이용할 수 있습니다. 둘 중 대세인 Nexus 를 사용해 보겠습니다.

 

Nexus site : http://www.sonatype.org/nexus
Nexus 설치 안내

 

대략적인 Nexus 로의 배포 시나리오는 다음과 같습니다.

 

  • 누군가 Nexus에 라이브러리를 등록할 수 있도록 별도의 계정 생성.
  • 로컬 저장소에서 mvn deploy 시 배포될 Nexus 주소/계정 정보 등록.
  • Nexus로 배포

 

 

1. 사용할 계정 생성

 

Nexus 사이트에 admin 계정으로 로그인하여 [Security] - [Users] - [Add...] 항목을 클릭한 후 새 계정을 생성합니다.
아니면 기존 생성된 user의 패스워드만 변경하여 사용해도 됩니다. (항목에서 마우스 우측버튼 클릭)

 

 

2. 계정 정보 삽입

 

Nexus 에 접속할 수 있는 계정 정보를 로컬 저장소의 settings.xml 파일에 삽입합니다.

 

$ vi ~/.m2/settings.xml
<servers>
    <server>
        <id>nexus</id>
        <username>deployment</username>
        <password>[password]</password>
    </server>
</servers>

 

 

3. 배포 정보 삽입

 

배포할 nexus 의 저장소 정보를 프로젝트의 pom.xml 파일에 삽입합니다.

 

$ vi <project_home>/pom.xml
<distributionManagement>
    <repository>
        <id>nexus</id>
        <name>Internal Releases</name>
        <url>http://domain.com:8081/nexus/content/repositories/releases/</url>
    </repository>

 

    <snapshotRepository>
        <id>nexus</id>
        <name>Internal Releases</name>
        <url>http://domain.com:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

 

 

4. 배포

 

$ mvn deploy

 

 

 


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  2개가 달렸습니다.
  1. 질문자 2013.05.29 17:48
    안녕하세요 넥서스 정보 찾다가 질문 드립니다.
    1. 계정 정보 삽입에서 <id>는 nexus 상에서 repository ID를 말하는 것인지요?
    repository ID와 정확히 일치해야 하는지 아니면 의미는 없는 것인지 궁금합니다.
    2. 배포 삽입 정보에서 <repository>와 <snapshotRepository>의 차이가 무엇인지 궁금합니다.

    답변 부탁드립니다.
    • 1. <계정 정보 삽입>의 ID는 임의로 정하셔도 됩니다. 대신 <배포 정보 삽입>의 ID와 일치해야 그 url로 접속할 수 있겠지요?
      2. url을 보시면 <repository />의 url은 releases 디렉토리를 가리키고 <snapshotRepository />의 url은 shapshots 디렉토리를 가리킵니다. 배포시 스냅샷 버전은 snapshots 디렉토리로, 릴리스 버전은 releases 디렉토리로 업로드 됩니다.
secret