15

是否可以仅从 pom.xml 文件中获取 POM 的实例org.apache.maven.project.MavenProject或其他对象形式?

提前致谢。

4

2 回答 2

28

是的你可以 。这是代码。你需要 maven-model-3.0.4.jar 和 plexus-utils-2.0.6.jar 和 maven-core-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);
于 2010-12-09T23:09:08.840 回答
2

如果你想获得基于 groupid、artifactId 和 version 的 MavenProject,你必须在 maven 插件中运行。这段代码将完成这项工作:

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 插件中。

于 2013-07-30T10:29:57.470 回答