2011-10-12 5 views

답변

1

이 작업을 수행하는 방법은 로컬 저장소의 이슈 또는 하드 드라이브의 pom 파일에서 프로젝트를 구성 할 것인지 여부에 따라 다릅니다. 어느 쪽이든, 당신은 당신이 모조에과 같이 할 수있는 ProjectBuilder 얻을해야합니다 :

/** @component role = "org.apache.maven.project.ProjectBuilder" */ 
protected ProjectBuilder m_projectBuilder; 

을 로컬의 repo에 유물에서 구축하려면 당신은해야합니다 :

/** @parameter expression="${localRepository}" */ 
protected ArtifactRepository m_localRepository; 

당신은 당신이 당신의 로컬 저장소에서 유물에서 MavenProject을 구성 할 수 있다는 일단 :

//Construct the artifact representation 
Artifact artifact = 
    new DefaultArtifact(groupId,artifactId,version,scope,type,classifier,new DefaultArtifactHandler()); 
    //Resolve it against the local repository 
artifact = m_localRepository.find(artifact); 
    //Create a project building request 
ProjectBuildingRequest request = new DefaultProjectBuildingRequest(); 
    //Build the project and get the result 
MavenProject project = m_projectBuilder.build(artifact,request).getProject(); 

아니면 치어 파일에서

:

File pomFile = new File("path/to/pom.xml"); 
ProjectBuildingRequest request = new DefaultProjectBuildingRequest(); 
MavenProject project = m_projectBuilder.build(pomFile,request).getProject(); 
+0

Maven 2.x에 의존하는 maven-dependency-plugin 용 패치를 작성하려고합니다. 위에서 언급 한 Maven 3.x API를 사용할 수 없습니다. – Gili

+1

그런 경우에는 MavenProjectBuilder 클래스 인 3.x ProjectBuilder에 상응하는 2.x를 사용해야 할 것입니다. @component role = "org.apache.maven.project.MavenProjectBuilder"를 사용하여 인스턴스를 가져올 수 있어야합니다. 대부분의 다른 클래스는 2.x API에 있거나 가까이 있어야합니다. – nonVirtualThunk

관련 문제