2011-11-20 2 views
3

여기에는 문서 및 예제가 거의 존재하지 않습니다 (존재하지 않는 것들).Java 코드 내의 Maven 종속성 복사

주어진 pom.xml 파일의 모든 종속성을 복사하고 싶습니다. 일반적으로 명령 줄에서 mvn dependency:copy-dependencies을 사용하거나 pom 파일에서 maven-dependecy-plugin 구성을 사용할 수 있습니다.

그러나 주어진 pom.xml 파일에서 프로그래밍 방식으로 수행하고 싶습니다.

[ERROR] Failed to execute goal on project test-pom: Could not resolve dependencies for project gigadot:test-pom:jar:0.5-SNAPSHOT: Failed to collect dependencies for [commons-lang:commons-lang:jar:2.6 (compile), commons-io:commons-io:jar:2.0.1 (compile), org.apache.commons:commons-exec:jar:1.1 (compile), org.apache.commons:commons-math:jar:2.2 (compile), xom:xom:jar:1.2.5 (compile), log4j:log4j:jar:1.2.16 (provided)]: Failed to read artifact descriptor for org.apache.commons:commons-math:jar:2.2: Could not transfer artifact org.apache.commons:commons-math:pom:2.2 from/to central (http://repo1.maven.org/maven2): No connector available to access repository central (http://repo1.maven.org/maven2) of type default using the available factories -> [Help 1] 

: 지금까지, 나는 "C:\\workspace\\gui"는 pom.xml 파일

하지만 위의 코드를 포함하는 디렉토리 나에게 다음과 같은 오류를 제공입니다 MavenCli

MavenCli cli = new MavenCli(); 
cli.doMain(new String[]{"clean", "dependency:copy-dependencies", "-DincludeScope=runtime"}, "C:\\workspace\\gui", null, null); 

를 사용할 필요가 있다고 생각 누구든지이 문제를 해결하는 방법을 알고 있습니까?

+0

아마도 http://stackoverflow.com/questions/2910162/how-to-get-an-artifact-download-url-via-maven-api 수는 있습니다 MavenCLI 프로젝트에이 의존성을 추가 어떤 포인터? – Raghuram

+0

pom이 xml 파일 일 뿐이므로 모든 종속성을 잡기 위해 dom 라이브러리 (예 : dom4j)와 xpath 표현식을 사용할 수 있습니다. 관심이 없으면 왜이 작업을 수행해야합니까? – Romski

+0

@Romski는 당신이 말하는 것은 이행 적 의존성을 포함하지 않을 것입니다. 내가 이것을하고 싶었던 이유는 동적 인 연결 시스템을 구축했기 때문입니다. 항아리 플러그인의 종속성을 클래스 패스에 자동으로 포함시키고 싶습니다. – gigadot

답변

0

<dependencies> 
    <dependency> 
     <groupId>org.apache.maven</groupId> 
     <artifactId>maven-embedder</artifactId> 
     <version>3.1.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.eclipse.aether</groupId> 
     <artifactId>aether-connector-wagon</artifactId> 
     <version>0.9.0.M2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.maven.wagon</groupId> 
     <artifactId>wagon-http-lightweight</artifactId> 
     <version>2.5</version> 
    </dependency> 
</dependencies>