1. Goal
- Maven에서 사용되는 clean, compile, package 등의 goal 명령어들도 사실상 plugin으로 내장되어 있다.
- clean, compile, test, install, package, deploy
2. Compiler plugin
- 기본적으로 maven은 jdk 1.5 기준으로 compile을 시도한다.
- 1.5버전보다 더 높은 버전으로 compile 하기위해서는 다음과 같은 조치가 필요하다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<compilerArgument>-Xlint:all</compilerArgument>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
3. Jar Plugin
- jar 패키징된 파일을 실행하기 위해서 ManifestFile을 생성해주는 plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>HelloWorld</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
- Maven 정복 - 2. Maven Hello World! 글에 추가 해보자
- 특별한 classpath 지정 없이 실행할 수 있다.
$ java -jar target/HelloWorld-1.0-SNAPSHOT.jar
4. Source Plugin
- package 시에 Source 코드를 포함시킨다.
- 아래의 코드를 추가하면 package 수행 및 install 수행 시
기본jar명-sources.jar
파일이 추가로 하나 생성된다. - 내부에
<goal>
설정은 plugin 별로 고유의 goal이 있다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>attach-resources</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
5. Javadoc Plugin
- java doc 문서를 자동 발행해주는 플러그인
- 아래와 같이 java 코드에 문서화 주석을 html문서로 떨구어 준다.
/***
* 한글은 잘안되나?
* @author Blidkaga
*
*/
public class HelloWorld{
public static void main(String args[]){
System.out.println("Maven Hello World!");
}
}
- javadoc plugin 을 설정하는 코드
configuration
항목은 한글 관련 설정
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<configuration>
<locale>ko_kr</locale>
<encoding>utf-8</encoding>
</configuration>
</plugin>
- javadoc goal 명령어 모음
- goal 과 관련된 내용
- remote에 자동 업로드는 아래 링크 참고
mvn javadoc:javadoc
mvn javadoc:jar
mvn javadoc:aggregate
mvn javadoc:aggregate-jar
mvn javadoc:test-javadoc
mvn javadoc:test-jar
mvn javadoc:test-aggregate
mvn javadoc:test-aggregate-jar
6. Tomcat 배포 플러그인
-
tomcat-user.xml tomcat설치 경로 > conf아래에 존재
<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>
</tomcat-users>
- pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<warSourceDirectory>src/main/webapp</warSourceDirectory>
<webXml>src/main/webapp/WEB-INF/web.xml</webXml>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<path>/simple</path>
<username>tomcat</username>
<password>tomcat</password>
</configuration>
</plugin>