Javaコードでpom.xmlを読みたいと思います。そのためのライブラリがあるのだろうかと思うので、別のセクション(例えば、依存関係、プラグインなど)のイテレータを手に入れることはできません。maven2/3 pom xmlファイルを読むためのライブラリはありますか?
答えて
MavenXpp3Readerはmaven-modelの一部です。サンプルコード:
MavenXpp3Reader reader = new MavenXpp3Reader();
Model model = reader.read(new FileReader(mypom));
まず、私はそこに利用できるAPIとそれを達成する簡単な方法があるので、あなたはすでにMavenプラグイン内で実行されていないと仮定しています。
先ほど投稿した解決策では、POMを簡単に読み取ることができますが、親の継承と式の補間は考慮されていません。
そのためには、ModelBuilderクラスを使用する必要があります。この
使用はArchivaから、たとえば、このコードの断片である、非常に簡単です:
ModelBuildingRequest req = new DefaultModelBuildingRequest();
req.setProcessPlugins(false);
req.setPomFile(file);
req.setModelResolver(new RepositoryModelResolver(basedir, pathTranslator));
req.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL);
Model model;
try
{
model = builder.build(req).getEffectiveModel();
}
catch (ModelBuildingException e)
{
...
}
あなたはこのかかわらず実行するために2つのことを行う必要があります。
- インスタンス化し、ワイヤー
ModelBuilder
のインスタンスをそのプライベートフィールドを含めて - 親POMを見つけるためのMavenのリゾルバの1つを使用するか、自分で作成してください(上のスニペットのように)
これは、既に使用しているDIフレームワークやMavenのデフォルトコンテナを埋め込みたいかどうかによって異なります。
これは達成しようとしているものによって異なります。埋め込まれたXMLファイルをXMLとして扱いたいだけなら、既に提供されている提案に従ってください。
アプリにMavenの機能を実装する場合は、新しいaetherライブラリをお試しください。私はそれを使用していませんが、それは統合するのに十分にシンプルに見えますし、あなたの努力のためにMavenの機能を提供する必要があります。
現時点では、このライブラリはMaven 2ではなくMaven 3ライブラリです(タグに指定されています)。それがあなたに大きな違いをもたらすかどうかわからない
aetherでプラグイン設定を読むことはできますか? –
うわー、ゾンビの話題。とにかく、私が言ったように、あなたがしようとしていることに依存します。外部の設定をmavenに解析するだけであれば、通常のXMLパーサを使用することになります。あなたがプラグインを書いているなら、できると思いますが、より新しいライブラリが利用できるかもしれません(私は今、Mavenの開発者をいなくなっています)。いくつかのプラグインのドキュメントを見ることができます。http://maven.apache.org/plugin-developers/ PS。私はaetherへのリンクはもはや新しいリンクが動作していないことに気づいた - http://www.eclipse.org/aether/ – GKelly
- 1. vcardファイルを読むためのJavaライブラリはどこにありますか?
- 2. XMLファイルを読み込むためのコードを簡略化するためのアドバイスはありますか?
- 3. omni xml、xmlファイルを読むための単純な現在の例はありますか?
- 4. ExcelやODSファイルを読むためのCライブラリはどこにありますか?
- 5. xmlをより速く読む方法はありますか?
- 6. XML(LOM)をXML + RDFにバインドするためのJavaライブラリがありますか?
- 7. ライブラリを読み込むためのSystem.load
- 8. ユーザオプション(NetBeans 7.0)を読むためのJavaのXMLまたは* .propertiesファイル
- 9. Android用Kotlinにライブラリを書き込むためのオーバーヘッドはありますか?
- 10. Excelスプレッドシートファイルを読み込むための.NET Core互換ライブラリはありますか?
- 11. 大きな画像を部分的に読み込むためのjavascriptライブラリはありますか?
- 12. リモートジップからファイルを取得するためのライブラリはありますか?
- 13. Maven:親POMのバージョンを読むには
- 14. プロジェクトのコード解読を計算するためのライブラリがありますか?
- 15. PHPセッションデータを解読するためのJavaライブラリがありますか?
- 16. ワードドキュメントを解析/読み込む目的のライブラリはありますか?
- 17. Googleライブラリから読み込むときにjsapiを読み込む必要はありますか?
- 18. オペレーティングシステムを構築するためのライブラリはありますか?
- 19. AndroidでXMLファイルを読む
- 20. GoでXMLファイルを読む
- 21. XMLファイルを読むJavascript
- 22. Node.jsでXMLファイルを読む
- 23. XMLファイルを読む(C#)
- 24. JavaでXMLファイルを読む
- 25. GroovyでXmlファイルを読む
- 26. VBAでXMLファイルを読む
- 27. PHPでXMLファイルを読む
- 28. xmlファイルにSQLコマンドを使用するためのPHPライブラリがありますか?
- 29. フラッシュに読み込むページでxmlの読み込みがありますか?
- 30. PROTECTED Excelワークシートを読むことができるPHPライブラリはありますか?
私が理解する限り、これはMaven 3のやり方です。 Maven 2.2.xのアプローチは何でしょうか、私たちに教えてください。前もって感謝します。 – carlspring
ライブラリは互換性があるので、埋め込みには関係なくmaven 3ライブラリを使用することをお勧めします。実際にMaven 2ライブラリを使用する必要がある場合は、ここで例を見つけることができます:https://github.com/brettporter/centrepoint/blob/master/centrepoint/modules/maven-importer/src/main/java/com/ effectivemaven/centrepoint/maven/repository/CentralRepositoryService.java –
その明確化のおかげで!とても有難い! – carlspring