메이븐 Plugins 정보
메이븐 Plugins 정보
Plugin
Goal
- Maven 에서 사용되는 clean, compile, package 등의 goal 명령어들도 사실상 plugin으로 내장되어 있다.
- clean, compile, test, install, package, deploy
Compiler plugin
- 기본적으로 maven은 jdk 1.5 기준으로 compile을 시도한다.
- 1.5버전보다 더 높은 버전으로 compile 하기 위해서는 다음과 같은 조치가 필요하다
1
2
3
4
5
6
7
8
9
10
11
12
<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>
Jar Plugin
- jar 패키징된 파일을 실행하기 위해서 ManifestFile을 생성해주는 plugin
1
2
3
4
5
6
7
8
9
10
11
12
13
<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>
- 특별한 classpath 지정없이 실행할 수 있다.
1
$ java -jar target/HelloWorld-1.0-SNAPSHOT.jar
Source Plugin
-
package 시에 Source 코드를 포함시킨다.
-
아래의 코드를 추가하면 package 수행 및 install 수행 시
기본 jar명-sources.jar
파일이 추가로 하나 생성된다. -
내부에
<goal>
설정은 plugin 별도 고유의goal
이 있다.- https://maven.apache.org/plugins/maven-source-plugin/plugin-info.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<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>
Javadoc Plugin
- java doc 문서를 자동 발행해주는 플러그인
- 아래와 같이 java 코드에 문선화 주석을 html문서로 떨구어 준다.
1
2
3
4
5
6
7
8
9
10
/***
* 한글은 잘안되나?
* @author Blidkaga
*
*/
public class HelloWorld{
public static void main(String args[]){
System.out.println("Maven Hello World!");
}
}
- javadoc plugin 을 설정하는 코드
configuration
항목은 한글 관련 설정
1
2
3
4
5
6
7
8
9
<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 과 관련된 내용
- https://maven.apache.org/plugins/maven-javadoc-plugin/plugin-info.html
- remote에 자동 업로드는 아래 링크 참조
- https://www.lesstif.com/display/JAVA/maven+site+plugin
1
2
3
4
5
6
7
8
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
Tomcat 배포 플러그인
- http://blog.iotinfra.net/?p=1201
tomcat-user.xml
tomcat 설치 경로 > conf 아래에 존재
1
2
3
4
5
<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>
</tomcat-users>
- pom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<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>
- 추가 참조 : https://www.lesstif.com/pages/viewpage.action?pageId=14090451
dependency를 포함하는 실행가능한 jar 만들기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archive>
<manifest>
<classpathPrefix>lib/</classpathPrefix>
<addClasspath>true</addClasspath>
<mainClass>com.blidkaga.HelloWorld</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
This post is licensed under
CC BY 4.0
by the author.