이 내용은 박재성님이 집필하신 [자바 세상의 빌드를 이끄는 메이븐] 책을 그대로 정리한 것이다.
회사에서 스터디를 하는데 문서 보안 때문에 어쩔수 없이 블로그를 이용하게 되었고,
위 내용은 박재성님의 허락을 받았습니다.

2 메이븐 설치 및 템플릿 프로젝트 생성
 1) 설치
  - http://maven.apache.org/download.html
  - apache-maven-3.0.4-bin.zip 파일을 다운받아서 압축을 품
    D:\maven
  - 환경 변수에 MAVEN_HOME 추가
  - PATH에 MAVEN_HOME\bin 추가
  - 프롬프트에서 > mvn -version 으로 설치 확인
 2) 템플릿 프로젝트 생성
  - 메이븐은 프로젝트의 소스 디렉토리, 테스트 소스 디렉토리, 웹 리소스 디렉토리 등의 기본 설정이 예약되어 있음
  - 메이븐은 템플릿 프로젝트로 프로젝트를 생성하면 프로젝트의 뼈대를 자동 생성, 이 기능을 아키타입archetype이라 함
  -> cd D:\workspace-indigo\
   > mvn archetype:generate -DgroupId=com.samsunglife -DartifactId=webzine -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

     


  - 기본 소스 디렉토리는 src/main/java, 기본 테스트 소스 디렉토리는 src/test/java
  - groupId 는 일반적으로 생성하는 프로젝트 도메인명, artifactId는 프로젝트 이름, 자세한 내용은 뒤에서 설명

  <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.samsunglife</groupId>
    <artifactId>webzine</artifactId>
    <packaging>jar</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>webzine</name>
    <url>http://maven.apache.org</url>
    <dependencies>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
  </project>
  pom.xml 내용은 뒤에서 설명
 3) 메이븐 기본 명령어
  - mvn [options] [<goal(s)>] [<phase(s)>] 형태로 실행 가능함
  - 메이븐 명령은 옵션, 골, 페이즈 조합으로 실행, 옵션은 메이븐 설정 파일(pom.xml)이 없는 곳에서도 실행 가능하며, 골과 페이즈는
    메이븐 기반으로 진행하는 프로젝트의 디렉토리에서 실행
  - mvn -help 로 사용할수 있는 명령 확인, 가장 많이 사용하는 옵션중 하나 mvn -Dmaven.test.skip=true
  - 여러개의 페이즈와 골을 실행할수 있음, 자세한 내용은 뒤에서 설명
  - > D:\workspace-indigo\webzine 로 이동해서
      mvn test 를 실행해 봄
      resources:resource에서 뭔가 하고, compiler:compile 에서 src/main/java 소스 컴파일, compiler:testCompile 에서 src/test/java 테스트 코드 컴파일
      마지막 단계 surefire:test 단계에서 단위 테스트 실행


 4) 웹 프로젝트 템플릿 생성
  - 앞의 예제에서 archetypeArtifactId 인자로 아키타입 아이디 전달, 내가 만들고 싶은 프로젝트는 jar 가 아니라
    웹 애플리케이션(war)
  - 총 58개의 아키타입 제공, archetypeArtifactId를 지정할수 있지만
    mvn archetype:generate 만 샐행해서 생성하는것도 가능
  - 메이븐은 아키타입의 종류에 따라 카탈로그를 나누어 관리
    internal : 58개, local:본인이 만든 아키타입을 관리하기 위한 카탈로그, remote:외부 286개
    기본 카탈로그 값은 remote, local
  - > mvn archetype:generate -DarchetypeCatalog=internal 을 실행하면 58개의 아키타입 목록 확인
  - > mvn archetype:generate 명령을 실행하면 대화 모드로 템플릿 프로젝트 생성
  - D:\workspace-indigo\webzine 디렉토리 삭제
  - > mvn archetype:generate -DarchetypeCatalog=internal 실행
      19번 입력, groupId : com.samsunglife, artifactId : webzine 입력
      Caused by: org.apache.maven.plugin.MojoFailureException: The desired archetype does not exist
      (org.apache.maven.archetypes:maven-archetype-webapp:RELEASE) =====> 뭔가 오류가 나서 패스
  - > mvn archetype:create -DgroupId=com.samsunglife -DartifactId=webzine -DarchetypeArtifactId=maven-archetype-webapp 실행
   

 pom.xml
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.samsunglife</groupId>
  <artifactId>webzine</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>webzine Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>webzine</finalName>
  </build>
 </project>

 - packaging 이 jar -> war <build><finalName> 옵션이 있으면 아마 war 파일 이름이 바뀜, 뒤에서 설명

Posted by gt1000

블로그 이미지
gt1000

태그목록

공지사항

어제
오늘

달력

 « |  » 2024.3
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함