프로그래밍 노트/빌드도구

[Maven] 메이븐 기본 페이즈와 플러그인_2(테스트, 패키징)

깡냉쓰 2019. 3. 31. 21:04
728x90
반응형

테스트하기

mvn test

test페이즈는 target/test-classes에 컴파일한 단위 테스트 클래스를 실행하고 그에 따른 결과물을 target/surefire-reports 디렉토리에 생성한다. (test-compile 페이즈에 의존 관계를 가진다.)


만약 테스트 스위트(TestSuite)별로 나누어서 테스트할 필요가 있다면 test 옵션을 사용한다.

다음과 같이 원하는 테스트 클래스를 지정할 수 있다.

mvn -Dtest=원하는클래스 test
mvn -Dtest=원하는클래스1,원하는클래스2 test

단위 테스트가 실패하여 빌드가 실패할 경우 (테스트케이스 관리가 안될 경우) 테스트를 스킵할 수 있다.

mvn -Dmaven.test.skip=true test

매번 인자로 전달하기 싫다면 pom.xml 설정 파일에서 엘리먼트에 maven.test.skip 속성을 추가하거나

<project ...>
    <properties>
        <maven.test.skip>true</maven.test.skip>
    </properties>
</project>

test 페이즈에 연결되어 있는 surefire 플러그인에서 설정할 수도 있다.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.5</version>
    <configuration>
        <sktpTests>true</sktpTests> <!-- 테스트를 모두 스킵 -->
        <testFailureIgnore>true</testFailureIgnore> <!-- 테스트가 실패하더라도 다음단계 빌드-->
    </configuration>
</plugin>

패키징하기

컴파일 테스트가 완료되었다면 jar, war 같은 형태로 압축한다.

pom.xml은 < packagin/> 엘리먼트에 설정한 값으로 압축된다.

mvn package

package 페이즈를 실행하면 compile, test-compile, test, package 순으로 실행된 후 jar, war 파일이 target 디렉토리에 생성된다.

< build>/< finalName> 엘리먼트에 값이 설정되어 있다면

${finalName}.${packaging} 

형태로 압축파일이 생성되고, 만약 < finalName>이 설정되지 않았다면,

${artifactId}-${version}.${packaging}

형태로 생성된다.

플러그인에 대한 자세한 정보

728x90
반응형