是否有生成POM.xml文件的Java类?

Ran*_*dom 18 java pom.xml maven

在我的工作项目中,我最近被要求通过java类生成POM文件.问题是我对Maven非常非常新(就像去年12月一样).

我需要的是一个莫名其妙的代码生成一个XML文件(POM文件,但如果我可以配置任何XML创建代码,将被罚款)给所有necesary数据,所以他们并不需要手工编写它.我不知道我是否在解释自己,但问题是,是否有任何库或类生成或构造具有给定数据的POM文件?如果不是,这只是罚款,我只是不想失去更多的时间寻找的东西,我不知道如果它存在的话,如果是声明POM对象,然后做一个简单的文档d简单= generatePom(POM p).因为没有人抱怨写POM文件有多难,所以我应该有一个简单的方法来做它们但我想我已经迷失了很多API javadoc并且我找不到回来的路.

如果对此没有代码我的想法是搜索POM词典(覆盖所有元素),并创建一个给定的POM对象的XML文件(我以前充满了我提供的数据),其使用XML生成例如JDOM,XOM或XStream.如果没有已经完成此课程的课程(例如'嘿!你做错了'),任何对此的想法都会受到赞赏.

PS:我已经读过Eclipse项目正在做一些Maven的事情,并且有一个API为你拥有的实际项目生成一个pom.xml文件.如果我可以覆盖输入数据或其他东西,这将是一件好事.

谢谢大家!

Bre*_*ter 42

这取决于你想要做什么.如果你只想为一个肯定类型的新项目创建POM,最好的方法是通过Maven原型(你可以用你想要的模板创建自己的原型).

如果您确实需要以编程方式编写POM,则可以使用以下命令:

import org.apache.maven.model.*;
import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
...
Model model = new Model();
model.setGroupId( "some.group.id" );
...
new MavenXpp3Writer().write( w, model );
Run Code Online (Sandbox Code Playgroud)

...其中w是java.io.Writer并添加了所有必要的异常处理.

Javadoc就在这里:http://maven.apache.org/ref/2.2.1/maven-model/apidocs/index.html

要访问此API,您应该添加此依赖项:

<dependency>
  <groupId>org.apache.maven</groupId>
  <artifactId>maven-model</artifactId>
  <version>2.2.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

还有一个相应的读取API,但请记住,它不会执行所有Maven操作,例如继承和插值(要做到这一点,需要更高级的API使用).

  • 如果你想知道Brett是怎么知道的,那是因为他写了Apache Maven2:有效实施:http://brettporter.wordpress.com/ (4认同)