-
메이븐이 제공해주는 사항
- 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
댓글