ETC

Gradle에서 repository로 배포하는 task 작성하기

Jaime.Lee 2020. 2. 7. 17:10

먼저 배포할 모듈의 build.gradle 파일에 uploadArchives 라는 태스크를 추가합니다.

태스크 추가를 위해선 maven 플러그인이 필요하고 그 외의 메타데이터 정보들을 추가해주시면 됩니다.

plugins {
	id 'maven'
   	// 생략
}

group = 'com.example.package'
version = '0.0.1'
sourceCompatibility = '1.8'
archivesBaseName = 'example-archives-base-name'

// 생략

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: 'path/to/repository') {
                authentication(userName: 'repositoryId', password: 'repositoryPassword')
            }
            snapshotRepository(url: 'path/to/repository') {
                authentication(userName: 'repositoryId', password: 'repositoryPassword')
            }
        }
    }
}

IDE의 Gradle 툴에서 uploadArchives 태스크를 실행시키시거나 터미널에서 아래와 같이 입력합니다. (두 가지 방법 중 하나 사용)

> path/to/project > ./gradlew uploadArchives
> path/to/project > gradle uploadArchives

이렇게 배포하면(저는 nexus로 배포하였습니다)

com.example.package
ㄴ 0.0.1
  ㄴ example-archives-base-name.jar
  ㄴ example-archives-base-name.jar.md5
  ㄴ example-archives-base-name.jar.sha1
  ㄴ example-archives-base-name.pom
  ㄴ example-archives-base-name.pom.md5
  ㄴ example-archives-base-name.pom.sha1

위와 같은 구조로 jar 파일 및 pom 파일과 해시값 등이 생성됩니다.

 

다른 모듈에서 사용할 때는 build.gradle 파일에 아래와 같이 dependency를 추가하시면 됩니다.

dependencies {
	implementation "com.example.package:example-base-archive-name:0.0.1"
}