2012-12-07 3 views
0

현재 배포 워크 플로는 수동으로 (즉 스크립트로) 각 maven 프로젝트 디렉토리에 CD를 넣고 mvn install을 실행합니다. 문제는 로컬 리소스, 즉 작성한 다른 사내 코드와 적극적으로 개발/유지 관리하는 것입니다. 누락 된 경우 해당 리소스를 빌드하는 방법을 Maven에게 알려주는 방법을 알지 못합니다. 최상위 애플리케이션을 다시 패키징 할 필요가있을 때마다 적어도 하나의 파일을 수정 한 모든 라이브러리를 다시 빌드하는 것이 이상적입니다.maven - 로컬 종속성을 자동으로 구현합니다.

+0

부모 및 자녀의 상속 기능인 다중 모듈'pom '을 사용하지 않습니까? – mtk

+0

관련 : http://stackoverflow.com/questions/2890341/maven-module-vs-project-eclipse-m2eclipse-plugin – Brian

답변

3

(다중 모듈) 프로젝트가 다른 사내 리소스를 사용하는 경우 실제로 필요한 리소스는 모든 리소스를 항상 다시 작성하지 않고 로컬 메이븐 리포지토리를 사용하는 것이 좋습니다. ssh 또는 HTTP 전송 (deploy plugin 참조) 또는 Archiva, Artifactory 또는 Nexus과 같은 실제 아티팩트 관리자를 사용하여 자원을 배포하는 간단한 저장소가 될 수 있습니다.

리포지토리 관리자는 배포 된 아티팩트를 보유하는 것 외에도 해당 릴리즈가 완료되면 더 이상 사용되지 않는 스냅 샷을 정리하고 중앙 저장소를 비롯한 다른 리포지토리의 로컬 캐시로 사용할 수 있습니다.

+0

또한 필자는 maven 프로젝트를 마이크로 - 인수 분해했다. Lib에 여러 개를 결합하면 합리적인 UOR을 얻을 수 있었다. 작업. – djechlin

1

모든 모듈이 포함 된 상위 POM을 보유하고 있습니다. 부모를 빌드하면 부모 POM 파일의 일부인 모든 모듈도 빌드됩니다.

자녀가있는 부모가있는 한 부모로부터 많은 것을 상속받을 수 있습니다.

0

코드를 자동으로 작성하려면 Jenkins을 설정하는 것이 좋습니다. 젠킨스 (Jenkins)는 새로 지어진 유물에 의존하는 프로젝트를 재건하는 유용한 기능을 가지고 있습니다. 빌드는 코드를 커밋하여 자동으로 트리거 될 수 있습니다.

여러 개발 시스템을 사용하거나 팀에서 작업하는 경우 젠킨스를 Nexus (기타 옵션 : Artifactory, Archiva)과 결합하여 공유 아티팩트에 대한 공통 저장소를 제공하십시오. 이러한 도구는 Maven 빌드를 지원하도록 설계되었습니다.

관련 문제