by-nc-sa     개발자, DBA가 함께 만들어가는 구루비 지식창고!

Maven Plugins




Maven Plugins

1. Maven Plugin

  • 플러그인은 Maven의 핵심 기능으로 Goal이라는 실행 단위들의 집합으로 구성되어 있다.

기본적인 plugin 설정

  • 플러그인 정보는 build 엘리먼트의 plugins 엘리먼트 안에 설정한다.
  • 플러그인을 등록할 때 groupId가 생략된 경우도 있다. 기본으로 org.apache.maven.plugins 와 org.codehaus.mojo 는 생략해도 된다
    <plugins>
     ...
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
        </configuration>
      </plugin>
      ..
    </plugins>
    
  • 아래와 같이 라이프사이클의 일부로 특정 Goal을 추가하고 설정 할 수 있다.
     
    <plugins>
     ...
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <configuration>
         <tasks>
           <echo>The JAVA_HOME var is ${env.JAVA_HOME}</echo>
         </tasks>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>run</goal>
            </goals>
            <phase>compile</phase>
          </execution>
        </executions>    
      </plugin>
      ..
    </plugins>
    
  • default lifecycle phase를 사용하는 예제
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-dependency-plugin</artifactId>
      <executions>
        <execution>
          <id>copy-dependencies</id>
          <!-- Binds by default to the lifecycle phase: process-sources.	 -->
          <goals>
            <goal>copy-dependencies</goal>
          </goals>
          <configuration>
            <excludeArtifactIds>servlet-api,jsp-api</excludeArtifactIds>
            <outputDirectory>${basedir}/web/WEB-INF/lib</outputDirectory>
            <overWriteReleases>false</overWriteReleases>
            <overWriteSnapshots>true</overWriteSnapshots>
          </configuration>
        </execution>
      </executions>
    </plugin>
    

2. Maven Plugins

문서정보

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.