Tôi cần chỉnh sửa POM khi chạy. Tôi đã sử dụng Dom4j để đọc pom và sau đó thiết lập một số dữ liệu. Nhưng tôi cần biết nếu tồn tại một hình thức khác để làm điều này. Tồn tại một tiện ích maven cho việc này?Làm thế nào để chỉnh sửa POM maven trong thời gian chạy?
Trả lời
Tùy thuộc vào những gì bạn đang thay đổi, có thể có trình bổ sung maven. Ví dụ: maven release plugin cập nhật thông tin phiên bản trong tệp pom.xml và kiểm tra các thay đổi trong điều khiển phiên bản.
Hãy thử tìm kiếm tác vụ cụ thể mà bạn đang cố gắng thực hiện (ví dụ: "cập nhật số phiên bản plugin maven") thay vì "sửa đổi pom.xml" chung chung hơn.
Sử dụng MavenXpp3Reader
để đọc và MavenXpp3Writer
để viết Model
đối tượng. Ví dụ đơn giản:
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);
Và lưu ý rằng mọi nhận xét, khoảng trống hoặc đường trắng sẽ bị xóa khỏi tệp.
cho những người khác: maven-model.jar có các lớp được tham chiếu ở trên –
Nó cũng sắp xếp lại thứ tự các nút. –
Mã này làm việc cho tôi:
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. Làm cách nào để bạn chỉnh sửa tệp maven pom?
- 2. không phụ thuộc vào thời gian chạy maven
- 3. Làm thế nào để sửa đổi mã javascript tại thời gian chạy?
- 4. tạo gui chỉnh sửa theo thời gian trong java
- 5. Làm thế nào để chạy maven tạo jar trên CLI
- 6. Làm cách nào để chỉnh sửa đồng thời trực tiếp?
- 7. Làm thế nào để có được dấu thời gian Unix trong MySQL từ thời gian UTC?
- 8. Maven Super POM
- 9. làm thế nào để có được siêu pom basedir trong một mô-đun con pom?
- 10. Chạy thử nghiệm với loại bao bì maven "pom"
- 11. Maven cha mẹ pom vs mô-đun pom
- 12. Làm thế nào để chia sẻ các mảnh POM giữa các POM khác nhau
- 13. Kho lưu trữ Maven cho thời gian chạy Eclipse BIRT
- 14. Làm thế nào để gọi một chuỗi để chạy vào thời gian cụ thể trong java?
- 15. Làm thế nào để có được NHibernate tạo ra SQL trong mã tại thời gian chạy?
- 16. Có cách nào trong Javascript để chỉnh sửa thời gian của trình duyệt không?
- 17. maven tạo pom tập tin
- 18. Làm thế nào để cho phép biên dịch thời gian biên dịch với Java 7 và maven
- 19. Làm cách nào để tạo lớp lỗi thời gian chạy tùy chỉnh của riêng tôi?
- 20. Làm thế nào để chỉnh sửa JavaScript trong Firebug?
- 21. Làm thế nào để ngăn chặn Maven/Artifactory giữ Snapshots với dấu thời gian
- 22. Làm thế nào để truy cập các biến môi trường linux từ maven pom?
- 23. Thẻ gốc trong Maven pom là gì?
- 24. Làm thế nào để bạn đặt thời gian và chỉ thời gian trong lịch trong Java?
- 25. Làm thế nào để tìm ra ID ứng dụng lập trình trong thời gian chạy?
- 26. Làm thế nào để có được kiểu generic trong thời gian chạy?
- 27. làm thế nào để đo thời gian chạy của thuật toán trong python
- 28. Làm thế nào để có được thời gian chạy của chương trình trong Haskell
- 29. Làm thế nào để dừng các thông báo lỗi thời gian chạy Javascript trong Visual Studio
- 30. Làm thế nào để tìm tên của hàm hiện tại trong thời gian chạy?
Bạn có muốn sửa đổi một POM trong bộ nhớ? Bạn có cần ghi nó vào hệ thống tập tin không? –
Tôi nghĩ tôi đã hỏi cùng một câu hỏi một lần. [Ở đây] (http://stackoverflow.com/questions/2131365/is-there-a-java-class-that-generates-a-pom-xml-file) Hy vọng nó sẽ giúp. – Random