2017-03-31 5 views
0

Maven Project B에 의존하는 Maven Project A를 가지고 있습니다. 이것들은 GitHub 저장소에서 저에게 관리됩니다. 프로젝트 B는 다른 많은 프로젝트에서 사용할 유틸리티 프로젝트입니다. 프로젝트 A는 프로젝트 B의 유틸리티를 사용하는 응용 프로그램입니다. My Maven 프로젝트는 공개 저장소에 존재하지 않고 현재 개발 중입니다.
다른 사람이 내 프로젝트 A와 통합되기를 원합니다. 끊임없이 변화하기 때문에 프로젝트를 패키지로 묶어 보낼 수는 없습니다. 그/그녀는 자신의 빌드 환경에서 내 코드를 체크 아웃하고 자신의 애플리케이션에 내 파트를 통합해야하며 내 레포에서 정기적으로 변경 사항을 가져와야합니다.
요점은 두 프로젝트가 동시에 진행되기를 바랍니다. 인터넷 검색을 마친 후에 나는이 두 가지 솔루션으로 끝났습니다.
1) 동일한 부모 프로젝트의 두 형제로 만듭니다. 이 접근 방식은 통합 프로젝트가 부모 프로젝트를 체크 아웃 할 때 항상 모든 종속성을 취한다는 장점이 있습니다. 그러나이 솔루션은 두 프로젝트를 함께 묶어줍니다. 프로젝트 B는 프로젝트 A를 염려하지 않는 다른 프로젝트에서 사용할 유틸리티 프로젝트입니다.
2) "수동으로"두 프로젝트를 체크 아웃하고 자신의 끝 부분에 대한 종속성을 처리하도록 통합 업체에 지시합니다. 프로젝트를 로컬 Maven repo에 설치하거나 IDE가 작업 공간 의존성을 해결하도록합니다. 이 방법은 수동으로 의존성을 알리는 것이지만, 업데이트 된 버전을 로컬 repo에 다시 설치해야한다는 것을 기억해야합니다.어떻게 두 개의 Maven 프로젝트를 느슨하게 결합 할 수 있습니까?

통합 자에게 자동화 된 방식으로 모든 종속성을 부여하고 수동 개입없이 코드를 자동으로 빌드 할 수있는 다른 전략이 있습니까? 또 다른 요구 사항은 프로젝트 B가 프로젝트 A와 밀접하게 결합되지 않으므로 향후 다른 프로젝트에서 자유롭게 사용할 수 있다는 것입니다.

내 마음에 오는 몇 가지 사항은 Maven 종속성 스키마의 다른 구조 또는 절차를 지원하기 위해 제공되는 연속적 통합 구성 요소와 관련이 있습니다. 그러나 나는 이것으로 어떻게 나아갈 수 있는지에 대한 명확한 전략을 가지고 있지 않거나 가능하다면 ... 단서를 찾지 못했습니까?

답변

0

프로젝트가 오픈 소스 인 경우 http://central.sonatype.org/pages/ossrh-guide.html 프로세스를 사용하여 자신 만의 Maven 저장소를 호스팅하지 않아도됩니다.

다른 옵션은 Nexus/Maven 저장소를 세우고 이슈에 의존하는 프로젝트가 settings.xml 파일의 다른 저장소를 구성하여 Nexus 저장소의 스냅 샷 배포를 확인할 수있게하는 것입니다. 필요한 경우 Maven 저장소에 스냅 샷을 배포 할 수 있습니다.

+0

예, 잠시 동안 이것을 사용하면 작업을 수행하는 것 같습니다. 답변을 수락하고 감사합니다! –