Whiteship's Note

Build Lifecycle(default 자세히)

Build/Maven : 2007.11.27 12:11


Resources

process-resource는 간단하게, src/main/resources 디렉터리에 있는 파일들을 복사하여 target/classes 디렉터리에 복사한다고 생각할 수 있습니다. 이때, ${...}를 텍스트로 대체할 수 있는 필터를 사용할 수 있습니다.

예를들어, src/main/resources/META-INF/service.xml 이 다음과 같을 때..

<service>
  <!-- This URL was set by project version ${project.version} -->
  <url>${jdbc.url}</url>
  <user>${jdbc.username}</user>
  <password>${jdbc.password}</password>
</service>

src/main/filters/default.properties 파일에 그 값들을 외부로 빼낼 수 있습니다.

jdbc.url=jdbc:hsqldb:mem:mydb
jdbc.username=sa
jdbc.password=

이 두개의 파일을 다음과 같이 설정하여 사용할 수 있습니다.

<build>
  <filters>
    <filter>src/main/filters/default.properties</filter>
  </filters>
  <resources>
    <resource>
      <directory>src/main/resources</directory>
      <filtering>true</filtering>
    </resource>
  </resources>
</build>

POM에 프로퍼티 파일에 명시했던 값들을 설정하면, 프로퍼티 파일을 사용하지 않을 수도 있다고 합니다.

Compile

컴파일 할 자바 버전을 명시할 수 있습니다. 기본으로 JDK 1.3 호환 코드로 컴파일 것으로 가정하기 때문에, 다음과 같이 명시적으로 사용할 버전을 설정해주어야 합니다.

<project>
  ...
  <build>
    ...
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
        </configuration>
      </plugin>
    </plugins>
    ...
  </build>
  ...
</project>

Test Resource

process-test-resource는 process-resource와 거의 같습니다. 차이가 있다면 POM에 testResources 엘리먼트 내부에 testResouce 엘리먼트로 정의해둔 Test Resource들을 target/test-classes에 복사합니다.

Test

이 Phase는 surefire:test Goal과 연관되어있습니다. Surefire는 *Test.java로 끝나는 파일들을 기본으로 실행합니다. 물론 별도로 설정할 수도 있는데, Appendix A에서 다룹니다. JUnit을 기본 테스트 프레임워크로 기대하고 있지만, TestNG를 다음과 같이 설정할 수도 있습니다.

<dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>4.7</version>
      <scope>test</scope>
      <classifier>jdk14</classifier>
</dependency>

'Build > Maven' 카테고리의 다른 글

http://mvnrepository.com/  (0) 2007.12.02
Profile  (0) 2007.11.30
Archetype  (0) 2007.11.29
Plugin  (4) 2007.11.28
Build Lifecycle(site)  (0) 2007.11.27
Build Lifecycle(default 자세히)  (0) 2007.11.27
Build Lifecycle(default)  (0) 2007.11.27
Build Lifecycle(clean)  (2) 2007.11.27
POM  (0) 2007.11.26
mvn site  (0) 2007.11.20
Maven 용어 3  (0) 2007.11.19
top

Write a comment.