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

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

게시판
JAVA
작성자
Zany
작성일
2017-12-01 15:18:39
읽은수
571
평점
   
표시옵션
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

게시물이 도움이 되셨으면 +1 을 눌러주세요~
 게시판 글 목록
No Subject Poster Hits Posted
14282 Zany 168 2018-04-05 10:47:10
14281 Zany 191 2018-04-05 10:31:07
Zany 571 2017-12-01 15:18:39
14236 Zany 440 2017-12-01 14:49:07
14232 Zany 618 2017-11-22 17:56:06
14230 Zany 274 2017-11-21 17:26:51
14229 Zany 414 2017-11-20 09:48:13
14192 Zany 1228 2017-08-21 12:26:24
댓글 달기 - 이 글이 도움이 되었거나 흥미로우셨다면, 댓글을 남겨주세요.(^^)(oo)(__)
작성자
                       
 
zany.kr
  Copyright ⓒ 2002-2010 Zany's Programming Lab. All Rights Not Reserved.
temporary This Page loads on 0.063 Secs