2016-09-09 4 views
2

내 프로젝트는 종속성을 Maven 저장소에 저장합니다. 특정 종속성을 다른 Maven 저장소로 옮기고 싶습니다. 이동은 쉬운 부분입니다. 하지만 그것은 무엇입니까 이동하려면 그게 바로 얻을 수 어렵습니다.Maven 의존성 + 모든 이행 + 부모 POM

Maven 또는 Gradle과 같은 빌드 도구가 빌드에서 이동 된 종속성을 사용할 수 있도록하려면 전이 의존성 (재귀 적으로) 및 (2) 프로젝트의 상위 POM 파일을 전송해야합니다. 종속 그래프의 모든 노드가 모두 없어 질 때까지 부모 노드에서 다시 (1)을 수행합니다.

이것은 매우 일반적인 유스 케이스처럼 보입니다. 여러 번 구현 된 사실에 대해 내 헤딩을하고 있습니다.

질문 :이 기능을 즉시 사용할 수있는 공용 라이브러리가 있습니까?

그렇지 않다면 아마도 맞춤 POM 파서를 구현해야 할 것입니다. 위의 내 가정은 올바른 방향으로 나아갈 필요가있는 것에 관한 것입니까?

답변

1

mvn dependency:list은 부모 종속성에 지정된 전이 의존성 및 종속성을 포함하여 프로젝트의 모든 종속성 목록을 제공합니다.

+0

저는 프로젝트의 모든 종속성을 찾고 있지는 않지만 특정 종속성에 대한 전이 의존성을 찾고 있습니다. 또한 빌드 프로세스가 상위 POM을 읽으려고 시도 할 때 부모 POM이 필요합니다.이 빌드 프로세스는 종속성뿐 아니라 이동도 확인해야합니다. – Boon

+0

종속성의 pom을 디렉토리에 다운로드 한 다음 해당 명령을 실행하여 해당 종속성에 대한 종속성을 볼 수 있습니다.부모님이 그 목록에 나타나는지 아닌지 잘 모르겠습니다. 스스로 확인해야합니다. –

2

maven-dependency-plugincopy-dependencies 목표는이 작업에 당신을 도울 수 있습니다

목표를 그 정의 된 위치에 복사 저장소에서 프로젝트 종속성을.

또한 빌드 (즉, 전체 계층 구조)에서 필요한 상위 poms를 복사하는 옵션 인 addParentPoms도 제공합니다. 이 옵션은 기본적으로 활성화되어 있지 않습니다.

또한 다른 include/exclude 옵션 (그룹 ID, 이슈 ID 등)을 통해 실제로 이동해야하는 항목을 필터링 할 수 있습니다.

옵션을 사용하면 전 이적 종속성이 필요한지 여부도 확인할 수 있습니다. 기본적으로 false으로 설정되므로 전 이적 종속성도 복사됩니다.

outputDirectory 옵션을 사용하면 지정된 필터에 따라 종속성, 전이 의존성 및 pom 파일의 계층 구조를 복사 할 위치를 지정할 수 있습니다.


또한과 go-offline 목표 (이적 의존성, 치어의 계층 구조, 플러그인 종속성 포함) 프로젝트에 필요한 무엇이든 로컬 저장소에서 삭제하는 maven-dependency-pluginpurge-local-repository 목표의 조합에 관심이있을 수 있습니다 오프라인 모드로 프로젝트를 준비하는 것, 즉 필요한 것을 해결 (다운로드)하는 것. 다시 말하지만 두 목표 모두 포함/제외 메커니즘과 전이 종속성 관리를 제공하므로 전략과 결과를 세분화 할 수 있습니다.