如何使用JBOSS Forge API将Parent POM添加到POM中

3
我正在创建一个插件,以编程方式更新现有的POM。我可以使用DependencyFacet、MavenFacet等添加依赖项、存储库和其他各种信息。但是,我无法弄清楚如何添加父POM。以下是我尝试过的代码,但它没有起作用。请帮忙指出我可以使用哪个facet以及如何使用它的语法。
 Parent p = new Parent();
 p.setGroupId("org.example");
 p.setArtifactId("application-master-pom");
 p.setVersion("1.1.0");
 MavenFacet mavenFacet = getFaceted().getFacet(MavenFacet.class);
 mavenFacet.getModel().setParent(p);

然而,父POM引用没有被添加到执行我创建的命令的项目pom中。

您希望以哪种方式更新pom文件?版本号? - khmarbaise
我正在尝试使用MavenFacet来编程方式更新POM,但不确定它是否正确。 - Buddha
这些方面是特定于IDE的,需要将项目导入Eclipse中进行设置。除此之外,在pom文件中加入这样的内容是没有意义的,也不应该在其中添加。你使用哪个Eclipse / IDE? - khmarbaise
@khmarbaise,我不确定您是否了解jboss forge及其框架。我正在为jboss forge构建一个插件,其中有几个可用的方面或实用程序,可以用于执行多种操作。MavenFacet可帮助我们使用Maven POM执行多种操作。DependencyFacet用于向pom添加依赖项。http://forge.jboss.org/ - Buddha
1个回答

5

在经过一些试错之后,我找到了答案...

Parent p = new Parent();
p.setGroupId("org.codehaus.griffon");
p.setArtifactId("application-master-pom");
p.setVersion("1.0.0");
MavenFacet mavenFacet = getFaceted().getFacet(MavenFacet.class);
Model model = mavenFacet.getModel();
model.setParent(p);
mavenFacet.setModel(model); 

不像问题中直接设置父级项目。如果我们获取模型并设置父级,然后使用Maven Facet重置模型,它可以成功更新父POM。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接