有没有用于读取maven2/3 pom xml文件的库?
我想在Java代码中阅读一个pom.xml。我想知道是否有一个库,所以我可以为不同的部分提供一个迭代器,例如,dependenes,插件等。我想避免手动构建解析器。
我想在Java代码中阅读一个pom.xml。我想知道是否有一个库,所以我可以为不同的部分提供一个迭代器,例如,dependenes,插件等。我想避免手动构建解析器。
你可以试试MavenXpp3Reader,它是maven-model的一部分。示例代码:
MavenXpp3Reader reader = new MavenXpp3Reader();
Model model = reader.read(new FileReader(mypom));
首先,我假设你还没有在Maven插件中运行,因为有更简单的方法可以通过那里的可用API来实现这一点。
之前发布的解决方案将允许您轻松读取POM,但是没有考虑父级的继承和表达式的插值。MavenXpp3Reader
为此,您需要使用模型构建器类。
使用这个非常简单,例如来自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 )
{
...
}
但是,您必须执行两项操作才能运行此操作:
ModelBuilder
如何最好地做到这一点取决于你已经在使用的DI框架,或者你是否只想嵌入Maven的默认容器。