ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 메이븐 시작하기
    카테고리 없음 2019. 4. 1. 14:01

    메이븐이 제공해주는 사항

    • Builds
    • Documentation
    • Reporting
    • Dependencies
    • SCMs
    • Releases
    • Distributioin

    컴파일

     mvn compile

    테스트소스 컴파일과 유닛 테스트 실행

    mvn test

    패키징(JAR파일 생성)

    mvn package
    • POM파일의  packaging 태그에 jar를 설정한 경우(디폴트값으로 설정이 없는 경우) 패키징 시 jar파일이 생성
    • 위의 명령 실행 시 ${basedir}/target 디렉토리에 jar파일이 생성

    로컬 저장소에 설치

    mvn install
    • 생성한 아티팩트에 대한 jar파일을 로컬 저장소에 설치(${user.home}/.m2/repository가 기본 위치)

    사이트 생성

    mvn site

    빌드 데이터 삭제

    mvn clean
    • target 디렉토리에 생성한 빌드 결과물들을 삭제

    스냅샷 버전이란

    • pom.xml 파일에 version태그에 -SNAPSHOT suffix를 사용
    <project xmlns="http://maven.apache.org/POM/4.0.0"
      ...
      <groupId>...</groupId>
      <artifactId>my-app</artifactId>
      ...
      <version>1.0-SNAPSHOT</version>
      <name>Maven Quick Start Archetype</name>
      ...
    • SNAPSHOT버전은 개발 브랜치의 마지막을 의미하며, 코드의 안정성이나 변경 없음을 보장하지 않음

    플러그인 사용 방법

    • 메이블 프로젝트 빌드 단계를 커스터마이징하고 싶은 경우 플러그인을 설정하여 사용 가능
    ...
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.3</version>
          <configuration>
            <source>1.5</source>
            <target>1.5</target>
          </configuration>
        </plugin>
      </plugins>
    </build>
    ...

    멀티 프로젝트 빌드

    • 메이븐을 사용하여 여러 모듈을 빌드
    • 아래와 같이 부모 pom.xml을 추가하고, 하위 두 개의 디렉토리를 추가
    +- pom.xml
    +- my-app
    | +- pom.xml
    | +- src
    |   +- main
    |     +- java
    +- my-webapp
    | +- pom.xml
    | +- src
    |   +- main
    |     +- webapp
    • 루트에 있는 POM파일에는 아래와 같이 작성
    <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/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
     
      <groupId>com.mycompany.app</groupId>
      <artifactId>app</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>pom</packaging>
     
      <modules>
        <module>my-app</module>
        <module>my-webapp</module>
      </modules>
    </project>
    • my-webapp/pom.xml
      ...
      <dependencies>
        <dependency>
          <groupId>com.mycompany.app</groupId>
          <artifactId>my-app</artifactId>
          <version>1.0-SNAPSHOT</version>
        </dependency>
        ...
      </dependencies>
    • 서브 디렉토리에 있는 pom.xml파일에는 <parent>태그로 부모를 설정
    <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/xsd/maven-4.0.0.xsd">
      <parent>
        <groupId>com.mycompany.app</groupId>
        <artifactId>app</artifactId>
        <version>1.0-SNAPSHOT</version>
      </parent>
      ...

    출처: https://maven.apache.org/guides/getting-started/index.html

    댓글

Designed by Tistory.