::: Zany's Homepage ::: Zany Wiki | 사이트 통합 검색
 
 
 

[gradle] 사설 레포지토리(nexus)에 deploy(upload/publish) 하기

게시판
JAVA
작성자
helix
작성일
2017-12-01 15:18:39
읽은수
5620
평점
   
표시옵션
HTML사용 | 자동BR태그 | 공백문자허용 | 가운데정렬 | 고정폭글꼴 | 자동URL링크 | 마우스선택
관련링크01
https://support.sonatype.com/hc/en-us/articles/213465348-How-do-I-configure-my-Gradle-build-to-publish-artifacts-to-Nexus- 
관련링크02
https://docs.gradle.org/current/userguide/maven_plugin.html 
● gradle.properties 파일에...
● build.gradle 파일에...
이렇게 설정한 후, gradle upload 명령을 수행하면
지정한 repository 에 jar 파일과 pom 파일이 디플로이 된다.

이 예제는 gradle maven 플러그인을 사용하여 사설 레포지토리에 디플로이(deploy, publish)하는 것인데,
maven-publish 플러그인은 2017년 12월 1일 현재 incubating 레벨에 있으며, pom 파일 생성 문제로 제대로 동작하지 않는다.
Note: Signing the generated POM file generated by this plugin is currently not supported.
Future versions of Gradle might add this functionality. Please use the Maven plugin for the purpose of 
publishing your artifacts to Maven Central.

https://docs.gradle.org/current/userguide/publishing_maven.html
공식 레퍼런스에도 걍 maven 플러그인을 쓰라고 안내하고 있다.
추후 버전에서는 개선될 것이라고 하니 개선되면 maven-publish 플러그인을 쓰면 되겠다.

실제로 maven-publish 플러그인을 사용하여도 정상적으로 jar 파일이 업로드되지만,
의존성 정보를 담고 있는 pom 파일이 제대로 생성되지 않아,
다른 프로젝트에서 maven-publish 플러그인을 통해 업로드된 jar 파일을 참조하면
의존성 파일이 정상적으로 다운로드되지 않는다.

당연한 말이겠지만, gradle dependencies 명령으로 봐도
해당 jar 파일의 의존성 정보가 정확히 보이지 않게된다. 예를 들면

● gradle maven 플러그인을 통해 업로드된
kr.zany.sample:my-module 을 참조하는 프로젝트에서 의존성 정보를 보면,
compile - Dependencies for source set 'main' (deprecated, use 'implementation ' instead).
+--- org.springframework.boot:spring-boot-starter-web: -> 1.5.9.RELEASE
|    +--- org.springframework.boot:spring-boot-starter:1.5.9.RELEASE
|    |    +--- org.springframework.boot:spring-boot:1.5.9.RELEASE
|    |    |    +--- org.springframework:spring-core:4.3.13.RELEASE
|    |    |    \--- org.springframework:spring-context:4.3.13.RELEASE
|    |    |         +--- org.springframework:spring-aop:4.3.13.RELEASE
                ... 생략 ...
+--- kr.zany.sample:my-module:0.9.44-RELEASE                ◀ 여기가 kr.zany.sample:my-module 의 의존성 정보이다.
|    +--- org.apache.commons:commons-lang3:3.4 -> 3.7       ◀   apache commons-lang3
|    +--- commons-io:commons-io:2.5 -> 2.6                  ◀   apache commons-io
|    \--- commons-codec:commons-codec:1.10                  ◀   apache commons-codec 을 참조하고 있다.
+--- org.projectlombok:lombok:1.16.18
+--- org.apache.commons:commons-lang3:3.7
+--- commons-io:commons-io:2.6
                ... 생략 ...
|    \--- org.codehaus.mojo:animal-sniffer-annotations:1.14
\--- com.google.code.gson:gson:2.8.2
● 반면 gradle maven-publish 플러그인을 통해 업로드된
kr.zany.sample:my-module 을 참조하는 프로젝트에서 의존성 정보를 보면,
의존성 정보가 제대로 보이지 않으며 실제로 참조 모듈이 다운로드되지 않는다.
compile - Dependencies for source set 'main' (deprecated, use 'implementation ' instead).
+--- org.springframework.boot:spring-boot-starter-web: -> 1.5.9.RELEASE
|    +--- org.springframework.boot:spring-boot-starter:1.5.9.RELEASE
|    |    +--- org.springframework.boot:spring-boot:1.5.9.RELEASE
|    |    |    +--- org.springframework:spring-core:4.3.13.RELEASE
|    |    |    \--- org.springframework:spring-context:4.3.13.RELEASE
|    |    |         +--- org.springframework:spring-aop:4.3.13.RELEASE
                ... 생략 ...
+--- kr.zany.sample:my-module:0.9.44-RELEASE                ◀ 여기가 kr.zany.sample:my-module 의 의존성 정보이다.
+--- org.projectlombok:lombok:1.16.18
+--- org.apache.commons:commons-lang3:3.7
+--- commons-io:commons-io:2.6
                ... 생략 ...
|    \--- org.codehaus.mojo:animal-sniffer-annotations:1.14
\--- com.google.code.gson:gson:2.8.2

 게시판 글 목록
No Subject Poster Hits Posted
14439 helix 1301 2019-12-06 00:56:59
14437 helix 2200 2019-10-01 10:57:58
14435 helix 1218 2019-07-03 16:50:25
14282 helix 1730 2018-04-05 10:47:10
14281 helix 1622 2018-04-05 10:31:07
helix 5620 2017-12-01 15:18:39
14236 helix 5605 2017-12-01 14:49:07
14232 helix 4609 2017-11-22 17:56:06
14230 helix 1240 2017-11-21 17:26:51
14229 helix 2141 2017-11-20 09:48:13
14192 helix 6907 2017-08-21 12:26:24
코멘트
작성자
                       
 
zany.kr
  Copyright ⓒ 2002-2010 Zany's Programming Lab. All Rights Not Reserved.
temporary This Page loads on 0.078 Secs