공통 코드를 사용하는 다른 모든 프로젝트에 해당 모듈을 포함 할 수 있도록 일종의 전역 프로젝트 디렉토리에 모듈을 갖고 싶습니다.
하지만 pom
이 전역 공유 모듈을 포함하고 컴파일하도록 maven 부모에게 어떻게 알릴 수 있습니까? 다음은 작동하지 않습니다.
svn/MyGlobalProject/project-commons/pom.xml //should be shared among different projects
svn/MyProject/web-parent/trunk/pom.xml //the parent pom used to build the application
svn/MyProject/web-parent/trunk/project-domain/pom.xml //submodule 1
svn/MyProject/web-parent/trunk/project-web/pom.xml //submodule 2
부모 pom.xml :
<project>
<groupId>de.project</groupId>
<artifactId>project-parent</artifactId>
<packaging>pom</packaging>
<modules>
<module>project-domain</module>
<module>project-web</module>
<module>../project-commons</module> <!-- Error -->
</modules>
</project>
mvn package
결과 :
Child module trunk\project-commons of trunk\pom.xml does not exist
mvn install
해당 글로벌 프로젝트에서 실행하면 로컬 저장소에 설치됩니다. 그러면 다른 프로젝트에서이를 종속성으로 참조 할 수 있습니다.
<dependency>
<groupId>whatever</groupId>
<artifactId>project-commons</artifactId>
<version>1.0</version>
</dependency>
이 단순한 접근 방식의 단점은 체크 아웃 project-commons
하고 실행할 때까지 다른 프로젝트가 컴파일되지 않는다는 것 mvn install
입니다.
더 고급 접근 방식은 글로벌 아티팩트를 배포 할 수 있는 네트워크 액세스 가능한 저장소 (예 : Artifactory 또는 Nexus)를 배포하는 것입니다. Artifactory에는 무료 인 커뮤니티 에디션이 있습니다. 그런 다음 설정 파일에이 저장소를 나열 할 수 있으며 Maven은 여기에 업로드 된 아티팩트를 분석합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다