Github으로 간단한 멀티모듈 구성하기(nexus 대신에...)
여러 프로젝트를 관리함에 따라 공통적으로 쓰이는 클래스들을 한번에 관리할 필요성이 느껴졌다.
nexus 솔루션이 대중적으로 많이 쓰인다고는 하나 개인적으로 사용하고 AWS 프리티어에서 사용하기엔 사양이 부족해서 좀 과하다 싶었다. 그래서 대안으로 github을 이용하는 방법을 찾아서 세팅을 해보았다!
방법은 아래와 같다.
1. 프로젝트를 생성한다. ( 여기선 maven )
2. 공통적으로 사용할 파일 생성
3. maven deploy 실행
- 로컬 파일 기반으로 생성하는 것이라 파일경로는 상대적이다.
local_maven_repo='C:\Users\dkask\IdeaProjects\camping-msa\common'
# Local Maven Repository의 snapshots 폴더로 deploy 실행
mvn -Dmaven.test.skip=true -DaltDeploymentRepository=snapshot-repo::default::file://${local_maven_repo}/snapshots clean deploy
- 실행 후 설정한 경로에 jar 파일들이 생성된다.
4. github 업로드
5. 사용할 프로젝트에서 가져오기
- repository id는 원하는 것으로 하면 된다.
6. reload 후 사용할 곳에서 import 해오면 된다.
참고
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=occidere&logNo=221285584339
https://blog.naver.com/truehoop/110176959807
------------------------------------------ 2023.04.21 ----------------------------------------------------------------
보다 간단한 방법 적용
deploy 파일을 올리는 것 보다 아래 요소를 사용하면 바로 배포 가능
distributionManagement
1. maven 에 배포하고자 하는 원격 리포지토리 주소를 아래 요소에 기입
<distributionManagement>
<repository>
<id>github</id>
<name>GitHub</name>
<url>https://maven.pkg.github.com/사용자명or조직명/리포지토리명</url>
</repository>
</distributionManagement>
2. .m2에 settings.xml에 인증정보 세팅
<servers>
<server>
<id>github</id>
<username>아이디</username>
<password>토큰</password>
</server>
</servers>
3. 로컬에서 mvn deploy 실행하면 1. 에서 세팅한 url에 저장된다.
배포가 완료되면 본문 5. 에 있는 방식으로 import 하면 된다.