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

[Maven] 메이븐 기본 페이즈와 플러그인_1(컴파일)

깡냉쓰 2019. 3. 28. 20:56
728x90
반응형

자원 복사 및 소스 코드 컴파일

process-resources와 compile 페이즈를 알아보자.

아래와 같은 명령어를 실행하면 src/main/java 디렉토리 아래의 모든 소스 코드가 컴파일된다.

mvn compile

compile 페이즈 실행 과정

  1. 의존 관계에 있는 process-resources 페이즈 실행 (resources 플러그인의 resources골이 실행)

    • resources 골은 src/main/resources 디렉토리에 있는 모든 자원을 target/classes 디렉토리로 복사

    • 만약 < resources /> 엘리먼트를 재정의했다면 재정의한 규칙에 따라 자원을 복사한다.

      <project ..>
          ...
          <build>
              <resources>
                  <resource>
                      <directory>src/main/resources</directory>
                  </resource>
                  <resource>
                      <directory>src/main/java</directory>
                      <excludes>
                          <exclude>**/*.java</exclude>
                      </excludes>
                  </resource>
              </resources>
          </build>
          ...
      </project>
    • 마이바티스 프레임워크 설정 파일이나 여러 설정파일은 src/main/resources 디렉토리에서 관리하기 보다 설정파일을 사용하는 소스와 같은 패키지로 관리할 때가 더 유용하다. (보통 src/main/java 디렉토리에서 관리)

    • 따라서 src/main/java 디렉토리에서도 자원을 관리한다면 위와 같이 설정을 한다. *.java 파일을 제외한 모든 설정파일은 target/classes 디렉토리로 복사되게 된다.

  2. compile 페이즈 실행(compiler 플러그인의 compile 골이 실행)

    • src/main/java 디렉토리의 자바 소스 코드를 target/classes 디렉토리로 컴파일 한다.

    • 만약 추가 적인 설정이 필요할 경우 compiler 플러그인 설정을 한다. (하지않으면 최상위 POM 설정을 따름)

      <project ...>
          ...
          <build>
              <plugins>
                  <plugin>
                      <artifactId>maven-compiler-plugin</artifactId>
                      <configuration>
                          <source>1.8</source>
                          <target>1.8</target>
                          <encoding>utf-8</encoding>
                      </configuration>
                  </plugin>
              </plugins>
          </build>
          ...
      </project>

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

728x90
반응형