2010-12-07 1 views

답변

26

예 가능합니다. 이것은 코드입니다. 당신은 그룹 ID를 기반으로 MavenProject을 얻고 싶은 경우에 당신은 받는다는 모델-3.0.4.jar와 총-utils를-2.0.6.jar와 받는다는 코어-3.0.4.jar

Model model = null; 
FileReader reader = null; 
MavenXpp3Reader mavenreader = new MavenXpp3Reader(); 
try { 
    reader = new FileReader(pomfile); 
    model = mavenreader.read(reader); 
    model.setPomFile(pomfile); 
}catch(Exception ex){} 
MavenProject project = new MavenProject(model); 
+1

쿨, 고마워. 이 작동합니다. – javamonkey79

+1

해결책을 시도했지만 getCompileSourceRoots()가 빈 목록을 반환하는 것처럼 예상했던 MavenProject 객체의 일부 필드를 채우지 않습니다. – javydreamercsw

+0

pom 파일을 읽는 것은 변수, 상속 된 설정 (부모와 그 부모) 등의 데이터 보간을 포함하지 않습니다. – carlspring

2

필요 artifactId를 및 메이븐 플러그인 내부에서 실행해야하는 버전. 그리고이 코드는 작업을 수행합니다 :

ProjectBuildingRequest configuration = new DefaultProjectBuildingRequest(); 
configuration.setProcessPlugins(false); 
configuration.setRepositorySession(session); 
org.apache.maven.artifact.Artifact artifact = new org.apache.maven.artifact.DefaultArtifact(groupId, artifactId, version, "compile", "", "", new DefaultArtifactHandler()); 
MavenProject project = projectBuilder.build(artifact, configuration).getProject(); 

누락 된 속성을 Maven 플러그인에 삽입 할 수 있습니다.