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

1. 에러메시지

Error:java: javacTask: source release 8 requires target release 1.8


2. 해결방법

 1) 설정변경

  - File -> Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler 

  - 아래 이미지 내에 'target bytecode version' 옵션 1.8로 변경

  



 2) Maven을 사용할 경우

  - 아래소스 pom.xml에 추가

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>


1. 개요

 - 개인 라이브러리를 메이븐 중앙 저장소에 올려, 다른 사람들과 손쉽게 공유할 수 있도록 한다.

 - https://bintray.com 와 같은 대행 서비스가 있다.

 - 저장소 관리 솔루션인 sonatype nexus 사에서 제공하는 OSSRH(Open Source Project Repository Hosting)가 있다. 이걸로 업로드 진행 할 예정.


2. 사전 작업

 1) 계정 생성

  - https://issues.sonatype.org/secure/Signup!default.jspa 에 접속한다.

  - 계정을 생성하고, 이슈를 등록한다.

  - "CREATE"를 눌러 이슈를 생성한다.

  - https://issues.sonatype.org/browse/OSSRH-28348 와 같이 입력한다. (project 이름, group Id, url 등 입력)

  - 생성 후 몇시간 또는 며칠이 지나면 이슈 상태가 "Resolved"로 변경되면, 댓글을 달아준다. 그럼 배포 준비 끝


 2) pom.xml 작업하기.

  - 저장소(scm), 개발자정보(), 라이센스 등 필수



 3) $HOME/.m2/settings.xml 에 아래 텍스트 추가


 

 4) snapshot deploy

  - version 항목에 -SNAPSHOT 붙인다.

mvn clean deploy


  - https://oss.sonatype.org/content/repositories/snapshots 에 본인 groupId를 들어가보면 확인 할 수 있다.


3. PGP 등록 및 Signing 하기

 - Maven 프로젝트 각각의 보안을 위해 PGP라는 정보를 통해 확인


 1) PGP 생성

  - https://www.gnupg.org/download/index.html 에서 제공하는 툴로 생성


 2) PGP 등록하기

  - 생성한 키는 http://pgp.mit.edu/ 사이트에 등록해야한다. 일부 툴은 업로드도 제공해준다.


4. 배포하기

mvn clean deploy


5. 스테이징에서 릴리즈하기

 - https://oss.sonatype.org/#welcome 에 접속하여 로그인한다.

 - Staging Repositories 에서 본인 프로젝트 확인

 - 내용 확인 후 "Close" 문제가 없으면 "Release"버튼 활성화 됨.


 - "Release"를 누르면 끝!


6. 확인

 - 10분정도 후에 릴리즈 되고

 - 2시간 정도 후면 검색이 됨.

 - http://search.maven.org/ 


7. 참고자료

 - https://www.lesstif.com/pages/viewpage.action?pageId=30277671

 - http://zerobrain.tistory.com/53

 - http://central.sonatype.org/pages/ossrh-guide.html

 - http://stackoverflow.com/questions/23235892/how-long-does-sonatype-staging-take-to-sync-my-artifacts-with-maven-central

 - https://www.youtube.com/watch?v=dXR4pJ_zS-0&feature=youtu.be


'프로그래밍 > 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

1. 설치확인

 mvn -version

 -bash: mvn: command not found


2. tar파일 다운로드

wget http://apache.tt.co.kr/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

링크는 Maven에서 받을 수 있다. (Binary tar.gz archive을 받아야함)


3. 압축풀기

tar xvzf ./apache-maven-3.3.9-bin.tar.gz 


4. 링크 만들기

ln -s ./apache-maven-3.3.9 ./maven


5. 환경변수 설정

 - .bash_profile열기

vi ~/.bash_profile

export M2_HOME=$HOME/apps/maven

export PATH=$PATH:$M2_HOME/bin

source ~/.bash_profile 


6. 확인

mvn -version

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-    10T16:41:47+00:00)

Maven home: /home/ec2-user/apps/maven

Java version: 1.8.0_73, vendor: Oracle Corporation


'OS > Linux' 카테고리의 다른 글

su와 su - 의 차이점  (0) 2016.08.23
[AWS S3] s3fs 설치하기(Centos)  (0) 2016.08.18
Maven Install  (0) 2016.08.14
Webserver 'nginx' install on Centos 6.5  (0) 2016.08.14
Node.js Install on Linux(Centos)  (0) 2016.08.14
Jenkins Install on Centos(yum Install)  (0) 2016.08.06

+ Recent posts