Как вы поступите, зависит от того, хотите ли вы создать проект из артефакта в вашем локальном хранилище или из файла pom на жестком диске. В любом случае вам нужно получить ProjectBuilder
, что вы можете сделать так же в Mojo:
/** @component role = "org.apache.maven.project.ProjectBuilder" */
protected ProjectBuilder m_projectBuilder;
Если вы хотите построить из артефакта в вашем локальном репо, вам также понадобится:
/** @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();
Или из файла pom:
File pomFile = new File("path/to/pom.xml");
ProjectBuildingRequest request = new DefaultProjectBuildingRequest();
MavenProject project = m_projectBuilder.build(pomFile,request).getProject();