我需要在运行时编辑POM。我用Dom4j读取pom,然后设置一些数据。但我需要知道是否存在另一种形式来做到这一点。存在一个Maven实用程序?如何在运行时编辑maven POM?
7
A
回答
1
根据你的变化,可能会有maven插件。例如,maven release插件更新pom.xml中的版本信息并检查更改为版本控制。
尝试搜索您要完成的特定任务(例如“maven插件版本号更新”),而不是更通用的“修改pom.xml”。
9
使用MavenXpp3Reader
来读取并且MavenXpp3Writer
来写Model
对象。简单的例子:
String baseDir = "/your/project/basedir/";
//Reading
MavenXpp3Reader reader = new MavenXpp3Reader();
Model model = reader.read(new FileInputStream(new File(baseDir, "/pom.xml")));
//Editing
model.setUrl("http://stackoverflow.com");
//Writing
MavenXpp3Writer writer = new MavenXpp3Writer();
writer.write(new FileOutputStream(new File(baseDir, "/pom.xml")), model);
并注意到任何评论,额外的空白或行将被从文件中删除。
+0
其他:maven-model.jar具有上面引用的类 – 2012-01-11 19:15:21
+0
它还重新组织节点的顺序。 – 2016-02-19 11:47:19
0
此代码的工作对我来说:
package or.jrichardsz;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.Writer;
import org.apache.maven.model.Model;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
public class TestMavenPomEdit {
public static void main(String[] args) throws Exception {
//read initial pom
Model model = parsePomXmlFileToMavenPomModel("C:\\Users\\User\\Desktop\\initial_pom.xml");
//add some pom modification
Plugin plugin = new Plugin();
plugin.setGroupId("com.jelastic");
model.getBuild().addPlugin(plugin);
//write new pom
parseMavenPomModelToXmlString("C:\\Users\\User\\Desktop\\final_pom.xml", model);
}
public static Model parsePomXmlFileToMavenPomModel(String path) throws Exception {
Model model = null;
FileReader reader = null;
MavenXpp3Reader mavenreader = new MavenXpp3Reader();
reader = new FileReader(path);
model = mavenreader.read(reader);
return model;
}
public static void parseMavenPomModelToXmlString(String path,Model model) throws Exception {
MavenXpp3Writer mavenWriter = new MavenXpp3Writer();
Writer writer = new FileWriter(path);
mavenWriter.write(writer, model);
}
}
HTH
相关问题
- 1. 你如何编辑Maven pom文件?
- 2. 与Maven一起运行POM
- 3. 如何在运行时编辑标签
- 4. Maven - 运行mvn help的问题:effective-pom
- 5. 如何编辑json数据运行时?
- 6. maven运行从内部pom的maven安装
- 7. 如何运行测试maven?
- 8. Maven POM错误-POM丢失
- 9. 在运行时编辑动态记录
- 10. 在vba运行时冻结excel编辑
- 11. 在运行时编辑i18属性
- 12. WPF - 编辑资源在运行时
- 13. 在运行时编辑视图
- 14. 在maven子pom上重写Jacoco执行
- 15. maven,JAVA_HOME pom
- 16. Spring Hibernate maven POM
- 17. Maven超级POM
- 18. Maven pom错误
- 19. Maven POM的XPath
- 20. 如何在运行时注册组件和属性编辑器?
- 21. 如何在运行时覆盖(编辑)CSS颜色?
- 22. 如何在运行时编辑并保存nib文件?
- 23. 如何构建可在运行时编辑的Rails站点?
- 24. 如何使字段在运行时可编辑
- 25. 如何在编辑XML文件时运行我的项目?
- 26. 如何在Eclipse中编辑(运行时)类路径?
- 27. LLVM:如何在运行时访问JIT API并编辑自己?
- 28. 如何在程序运行时编辑datagridview
- 29. 如何从Maven命令行运行testng.xml
- 30. 运行maven build时出错
是否要修改内存中的POM?你需要将它写入文件系统吗? – 2010-05-11 14:51:19
我想我曾经问过同样的问题。 [这里](http://stackoverflow.com/questions/2131365/is-there-a-java-class-that-generates-a-pom-xml-file)希望它有帮助。 – Random 2010-05-12 14:15:24