따로 repo server를 두면 좋겠지만 개인 개발용인 경우 이는 무리가 있다.
github를 maven repository처럼 사용하면 복수의 개인 프로젝트 참조를 좀더 편하게 할 수 있다.
해당 기능을 제공해주는 https://jitpack.io/ 사이트가 있다.
jitpack을 사용하면 개인 프로젝트에 대해 쉽게 참조하여 사용할 수 있지만 이 경우 로컬 참조와 maven repository 참조를 바로바로 변환하지 못하는 단점이 있다.
jitpack은 여러모로 사용이 불편하지만 github를 maven repository로 사용하면 편하게 개인 참조 프로젝트를 사용할 수 있다.
사용 방법은 다음과 같다.
(maven repository를 github repository 에 만드는 것이다. 둘다 repository라는 단어를 쓰므로 구분해서 인식할 필요가 있다.)
- github에 maven repository 용 github repository 생성
- bluesky-maven-repo 생성
- 해당 github repository를 local에 clon
- local git 폴더에 bluesky-maven-repo 를 clon 받음
- maven deploy 할 프로젝트를 local github repository 위치에 배포
- bluesky-maven-repo 에 해당 jar가 배포 됨
- 해당 github repository를 push
- 사용할 프로젝트에서 해당 github repotiroy를 maven repository로 설정하여 사용
1, 2의 경우는 기존 github 사용이므로 설명은 생략한다.
3번의 maven 배포는 다음과 같은 명령어를 사용한다.
mvn deploy -DaltDeploymentRepository=snapshot-repo::default::file:../bluesky-maven-repo/snapshots
file의 위치는 bluesky-maven-repo 위치에 해당 브런치로 빌드하면 된다.
이렇게 배포된 내용을 github에 push 후 사용할 프로젝트에 다음과 같이 maven repository 설정을 추가한다.
<repositories>
<repository>
<id>github-bluesky-maven-repo</id>
<url>https://raw.githubusercontent.com/[본인github]/bluesky-maven-repo/master/snapshots</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
위 경우는 bluesky-maven-repo 라는 이름의 snapshot repository를 사용한 경우이며 이런 설정은 사용자마다 다르게 하면 된다.
이제 대상 프로젝트를 참조하여 사용한다.
<dependency>
<groupId>[대상 프로젝트 groupId]</groupId>
<artifactId>[대상 프로젝트 artifactId]</artifactId>
<version>[대상 프로젝트 version]</version>
</dependency>