본문 바로가기

현재/TIL

멀티 모듈 프로젝트에 maven-publish 적용하기

❗멀티 모듈에서 maven-publish를 사용해 공통 모듈을 만드는 방법을 제공하기 위함입니다.

 

실무에서 멀티모듈로 작성된 서버가 있다면 아래와같이 모듈을 추가하여 진행하도록한다.

 

1. 프로젝트에서 모듈을 추가한다.

 

 

 

2. root project setting.gradle에 해당 모듈을 include 시킨다.

 

 

3. (쓸모 없는 파일, 폴더들을 깔끔하게 삭제해준다.)

 

(.gitignore, test폴더,, 등 삭제해주었다.)

 

 

4. 공통으로 사용할 dto 파일을 만들어준다.

 

 

 

5. pay-dto 모듈(새로 생성하는)의 build.gradle에 maven-publish 코드들을 추가한다.

(https://binny.tistory.com/207?category=1092460 - Project 생성 3번과 동일한 작업이다.)

- id 추가 (이때 버전들은 root와 동일하게 맞춰주는게 좋다.)

- publishing 코드 추가

- jar 옵션 추가

 

id("maven-publish")

 

 

(id 추가)

 

publishing {
    repositories {
        maven {
            name = "GitHubPackages"
            url = uri("https://maven.pkg.github.com/{YOUR_GITHUB_ID}/{GITHUB_REPO_NAME}")
            credentials {
                username = {TOKEN_NAME}
                password = {TOKEN_VALUE}
            }
        }
    }
    publications {
        create<MavenPublication>("default") {
            from(components["java"])
        }
    }
}

 

(publishing 코드 추가)

 

 

6. 기존 모듈(현재는 api라고 명칭되어 있는 곳)에 depency를 추가한다.

 

implementation(project(":pay-dto"))

 

 

7. gradle tab에서 현재 추가되어 있는 모듈을 확인한다.

(1번과 같이 root 프로젝트에 pay-dto(새로 추가된 모듈)이 있으면된다.

 

 

혹시, 2번과 같이 root프로젝트와 동일한 depth에 생긴게 존재한다면 아래와 같은 방법으로 삭제해준다.

 

 

 

8. 배포한다.

터미널에서 아래와 같이 명령을 치고 배포한다.

./gradlew publish

 

9. 다른곳에서 배포한 내용을 사용한다.

 

 

 

덧. 혹시 github action을 쓰고 있다면, 아래와 같이 build.yml파일에 publish 할 수 있도록 추가할 수도 있다.

 

- name: Maven Publish
  run: ./gradlew publish

 

'현재 > TIL' 카테고리의 다른 글

gradle의 Maven publish 사용기  (0) 2022.09.08
멀티모듈 프로젝트로 생성하기  (0) 2022.08.14