3

既存の POM をプログラムで更新するアドオンを作成しています。DependencyFacet、MavenFacet などを使用して、依存関係、リポジトリ、およびその他のさまざまな情報を追加できますが、親 POM を追加する方法がわかりません。以下は私が試したコードで、うまくいきませんでした。私が使用できるファセットと、それを使用するための構文は何かについて、どんな助けも大歓迎です。

 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に追加されていません。

4

1 に答える 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 ファセットを使用してモデルをリセットすると、親 pom が正常に更新されます。

于 2015-04-25T16:28:28.010 に答える