2012-04-16 2 views
15

특정 좌표 (groupId.artifactId.version)가 저장소에 있으면 명령 줄에서 확인하고 싶습니다.Maven 이슈가 명령 줄에서 내 리포에 있는지 확인하는 방법은 무엇입니까?

가능한 경우 부분 좌표 (예 : artifactId.version)로 수행 할 수 있습니까? 레포를 지정할 수 있습니까?

내가 해결을 요구하지 않는

- 나는 단순히 내 지역의 repo에서 파일 검색을 시작하거나 POM에 이슈를 입력하고 오류를 기다리거나 넥서스를 설치하고 UI를 통해 검색 할 수 있습니다 ...

그것은 편리한 일입니다 - 한 번 CLI에, 그것은 신속하게 검사 할 수있는 것이 좋을 것입니다.

+0

Nexus 나 Artifactory와 같은 저장소 관리자를 설정하는 것이 좋습니다. 둘 다 웹 기반 검색 GUI를 제공합니다. –

+1

@ MarkO'Connor 감사합니다. 넥서스에 익숙하며 직장에서 사용합니다.하지만 개인용 노트북에서 과식하다고 생각합니다. (일식, 젠킨스 및 브라우저로 자신의 RAM을) – kostja

+1

이해하지만, 넥서스가 자원에 매우 가벼운 것으로 솔직하게 나는 그것 없이는 살 수 없다는 것을 알았습니다. 네트워크에서 연결이 끊어지면 저장소를 많이 만들고 Nexus가 저장소 캐시로 더 잘 작동하는지 확인합니다. –

답변

16

난 당신이 얻을 것이다 생각과 가장 가까운 :

mvn dependency:get -Dartifact=g:a:v -o -DrepoUrl=file://path/to/your/repo 

I'v 그것을 시도, 성공하면 이슈 (예 : "junit : junit : 4.8.2")가 귀하의 Repo에 있고 그렇지 않은 경우 실패하지만 로컬 repo에 대한 전체 경로를 URL로 써야합니다.

키가 -o (offline) 플래그를 사용하는 것이 중요합니다. 그렇지 않으면 maven이 항상 중앙 repo를 검사하기 때문입니다.

+0

꽤 지루한 것처럼 작동합니다. 나는 -o가 repoUrl을 중복되게 만들 것이라고 생각했을 것이다. (그러나 시도해 보았지만 그렇지 않았다.) 고맙습니다. – kostja

+0

@kostja 필자는 때때로 maven을 사용하여 구현할 때 가장 까다로운 요구 사항을 구현하는 것이 가장 어렵다는 것을 알고 있습니다 .- ( –

+2

+1. 하나의 메모 : 지금은 * repoUrl *은 더 이상 사용되지 않으며 [** remoteRepositories **] (http : 대신 /maven.apache.org/plugins/maven-dependency-plugin/get-mojo.html#remoteRepositories)를 참조하십시오. – informatik01

1

나는 이와 같은 것에 대해 들어 본 적이 없습니다. 아마도 get 목표 인 dependency 플러그인이 어떻게 든 가까이 있지만, 여전히 정확히 당신이 찾고있는 것은 아닙니다. 그런 일은 없을 것 같네요. 그러나, 당신이 원하는 것을 수행하는 자체 메이븐 플러그인은 꽤 간단 할 수 있습니다. Aether 라 불리는 Maven 3의 새로운 아티팩트 해결 메커니즘은 정말 훌륭하고 간단한 API를 가지고 있습니다. 어쨌든

는, 의존성 플러그인 살펴 :

여기 http://maven.apache.org/plugins/maven-dependency-plugin/get-mojo.html

+0

올바른 방향으로 안내해 주셔서 감사합니다. 나는 정말로 mvn 플러그인을 몇 분 동안 직접 작성하는 것으로 생각했지만 포커스를 유지해야만했다. :) – kostja

관련 문제