2012-11-02 3 views
5

다른 질문 (like this)과 비슷하지만 최신 API를 사용하여이 작업을 수행 할 수 있기를 바랍니다. maven-dependency-plugin : tree verbose 옵션은 더 이상 사용되지 않으며 최신 (2.5.1) 코드에서 아무 것도하지 않으므로 어떻게해야하는지에 대한 좋은 예가 없습니다.DependencyGraphBuilder를 사용하여 Maven에서 재정의 된 종속성을 포함하여 모든 전이 종속성을 프로그래밍 방식으로 나열하는 방법?

내가 예를 들어, jcabi-aether에서 Aether 유틸리티 클래스가 어떤 메이븐 유물의 모든 종속성의 목록을 얻을하는 데 도움이 될 수 있습니다 생각
+0

새로운 AET 그녀는이 정보를 제공하지 않습니다. 이전 버전의 maven-dependency-plugin 만 이러한 정보를 제공합니다 (http://maven.40175.n5.nabble.com/maven-dependency-plugin-Questions-td5729997.html). – khmarbaise

+0

나는 짧은 대답은 그 순간에 가능하지 않다는 것을 의미한다. 최소한 Hervé가 메이븐 코어에 대한 해결책이 될 때까지는. – Ben

답변

3

: 당신이 Maven 플러그인 이외의 경우

File repo = this.session.getLocalRepository().getBasedir(); 
Collection<Artifact> deps = new Aether(this.getProject(), repo).resolve(
    new DefaultArtifact("junit", "junit-dep", "", "jar", "4.10"), 
    JavaScopes.RUNTIME 
); 

:

File repo = new File("/tmp/local-repository"); 
MavenProject project = new MavenProject(); 
project.setRemoteProjectRepositories(
    Arrays.asList(
    new RemoteRepository(
     "maven-central", 
     "default", 
     "http://repo1.maven.org/maven2/" 
    ) 
) 
); 
Collection<Artifact> deps = new Aether(project, repo).resolve(
    new DefaultArtifact("junit", "junit-dep", "", "jar", "4.10"), 
    "runtime" 
); 

당신이 필요로하는 유일한 의존성은 다음과 같습니다 현재

<dependency> 
    <groupId>com.jcabi</groupId> 
    <artifactId>jcabi-aether</artifactId> 
    <version>0.7.5</version> 
</dependency> 
+0

Okay ... 그리고 MavenProject.getArtifact'에서 어떻게 사용하고 싶습니까? 그것을 할 수있는 방법이 있습니까? (나는 이것을 여기에서 요구했다 : http://stackoverflow.com/questions/16480314/get-all-the-dependencies-of-a-mavenproject-including-transitive-ones-using-aet). – carlspring

+0

['jcabi-aether']에서 유틸리티 클래스 ['Classpath'] (http://www.jcabi.com/jcabi-aether/apidocs-0.7.19/com/jcabi/aether/Classpath.html)를 사용해보십시오. ] (http://www.jcabi.com/jcabi-aether/example-classpath.html) (나는 당신의 다른 질문에도 대답했다) – yegor256

관련 문제