Maven의 기반이 되는 두 가지 요소 중에 하나를 어제 살펴봤습니다. 프로젝트 하나를 객체로 보는 POM이었죠. 그리고 오늘은 또 다른 하나 빌드 라이프사이클을 공부할 차례입니다.

빌드 라이프사이클은 "여러 개의 Goal들에 순서를 매겨둔, Phase들의 연속체"라고 할 수 있습니다. Goal들은 Phase를 실행 할 프로젝트의 패키징 타입에 따라 달라집니다.

Maven에는 세 개의 표준 라이프 사이클이 존재 합니다. clean, default(또는 build), site 가 있습니다.

clean

세 개의 Phase로 구성되어 있는 매우 간단한 라이프사이클 입니다.
pre-clean
clean
post-clean

대부분은 clean:clean Goal과 연결되어 있는 "clean" Phase를 사용합니다. SuperPOM에 기본값으로 "target"이라고 설정되어 있는 빌드 디렉터리 안에 있는 모든 파일을 삭제하는 일을 합니다. mvn clean을 실행하면, clean Phase까지 연관되어 있는 모든 Goal들을 실행합니다.

사용자 삽입 이미지clean 플러그인을 사용할 때 특정 파일을 삭제 대상에서 제외시키거나, 특정 파일만 삭제하도록 fileSet 엘리먼트 내부에 include 엘리먼트와 exclude 엘리먼트를 사용할 수 있습니다.

<project>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-clean-plugin</artifactId>
        <configuration>
          <filesets>
            <fileset>
              <directory>othertarget</directory>
              <includes>
                <include>*.class</include>
              </includes>
            </fileset>
          </filesets>
        </configuration>
      </plugin>