티스토리 뷰

프로그래밍/Maven

[Maven] Plugin 개발하기.

Geun AkaGeun 2018.04.09 08:00

1. 프로젝트 세팅하기

 1) 참고

  - Maven 버전이 3버전 이상이여야 합니다.

  - IntelliJ 로 개발할 예정입니다.

 2) 세팅

     (1) maven-archetype-mojo 를 선택한다.




(2) 관련 정보를 입력한다.

      - GroupId : 그룹 아이디로 패키지와 일치시켜서 입력한다.

  - ArtifactId : 플러그인 이름으로 규칙이있다.

* maven-${name}-plugin : Maven에서 자체 개발한 플로그인 이름으로, 사용할 수 없다.

* ${name}-maven-plugin : Custom Plugin 명칭으로 해당 룰에 맞춰서 플러그인 이름을 만들면 된다.


(3) 관련 정보 확인.



(4) 생성된 패키지 확인



(5) pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>kr.geun.o</groupId>
<artifactId>sample-maven-plugin</artifactId>
<packaging>maven-plugin</packaging>
<version>1.0-SNAPSHOT</version>
<name>sample Maven Mojo</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>3.5.1</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>


(6) MyMojo.java <-- 클래스명은 변경해도 됩니다.

 - 아래에 있는 @Mojo(name = "sample") 은 Maven plugin의 Goal 입니다.

import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.annotations.Mojo;

@Mojo(name = "sample")
public class MyMojo extends AbstractMojo {

public void execute() throws MojoExecutionException {
getLog().info("Hello, World!!");
}
}

 3) 빌드하기

mvn clean install


2. 테스트용 프로젝트 세팅

 1) 신규로 프로젝트를 Maven 프로젝트를 세팅한다. 

  


 2) pom.xml 내에 추가

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>kr.geun.mvn.test</groupId>
<artifactId>sample-mvn-plugin-test</artifactId>
<version>1.0-SNAPSHOT</version>

<build>
<plugins>
<plugin>
<groupId>kr.geun.mvn.plgn</groupId>
<artifactId>sample-maven-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
</plugin>
</plugins>
</build>
</project>


 3) 실행

 - mvn {groupId}:{artifactId}:{version}:{plugin Goal}

mvn kr.geun.mvn.plgn:sample-maven-plugin:1.0-SNAPSHOT:sample


or

 - mvn {artifactId} 내에 있는 prefix값 (예를들어 위 내용에서는 sample이다):{plugin Goal}

mvn sample:sample



 4) 결과



* 참고 링크

 - http://maven.apache.org/guides/plugin/guide-java-plugin-development.html


'프로그래밍 > Maven' 카테고리의 다른 글

Maven Test Skip 하는 법  (0) 2018.04.17
[Maven] Plugin 개발하기.  (0) 2018.04.09
Maven Central에 Library Upload하기!!  (0) 2017.02.21
[MAVEN] Exec Maven Plugin 사용하기  (0) 2016.12.01
TAG
, ,
댓글
댓글쓰기 폼
공지사항
최근에 달린 댓글
Total
14,254
Today
16
Yesterday
14
«   2018/04   »
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          
글 보관함