런타임에 POM을 편집해야합니다. 내가 읽기 pom에 대한 Dom4j을 사용하고 그 후 일부 데이터를 설정합니다. 그러나 이것을하기위한 또 다른 형식이 존재하는지 알아야합니다. 이것에 대한 maven 유틸리티가 있습니까?런타임에 Maven POM을 편집하는 방법은 무엇입니까?
7
A
답변
1
변경 사항에 따라 메이븐 플러그인이있을 수 있습니다. 예를 들어, maven release 플러그인은 pom.xml의 버전 정보를 업데이트하고 변경 사항을 버전 제어로 확인합니다.
보다 일반적인 "modify pom.xml"보다는 달성하려는 특정 작업 (예 : "maven plugin version number update")을 검색하십시오.
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는 위에 참조 된 클래스를 가지고 있습니다. –
+0
또한 노드 순서가 재구성됩니다. –
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. POM을 출력하는 프로젝트
- 4. '바이너리'XML 파일을 편집하는 방법은 무엇입니까?
- 5. swf 파일을 편집하는 방법은 무엇입니까?
- 6. NSMutableArray 데이터를 편집하는 방법은 무엇입니까?
- 7. iPhone에서 TableView를 편집하는 방법은 무엇입니까?
- 8. DataGridView에서 셀을 편집하는 방법은 무엇입니까?
- 9. settings.bundle에서 Root.plist를 편집하는 방법은 무엇입니까?
- 10. 보안 쿠키를 편집하는 방법은 무엇입니까?
- 11. VB에서 파일을 편집하는 방법은 무엇입니까?
- 12. maven-core-2.0.7-uber.jar를 재정의하는 방법은 무엇입니까?
- 13. Maven 2와 Maven 1 저장소를 사용하는 방법은 무엇입니까?
- 14. '옵션'및 '제공됨'범위를 사용하여 Gradle 프로젝트를 Maven 저장소에 게시하는 방법은 무엇입니까?
- 15. 런타임에 Viewcontroller를 숨기는 방법은 무엇입니까?
- 16. 런타임에 컨트롤을 만드는 방법은 무엇입니까?
- 17. Maven 3에서 사용되지 않는 MavenProjectBuilder 대체품은 무엇입니까?
- 18. Sharepoint에서 Excel을 통해 데이터를 편집하는 방법은 무엇입니까?
- 19. 모달 팝업의 내부에서 Gridview를 편집하는 방법은 무엇입니까?
- 20. 양식에서 제출 값을 편집하는 방법은 무엇입니까?
- 21. TFS 보고서를 열고 편집하는 방법은 무엇입니까?
- 22. 선택한 SubItem을 프로그래밍 방식으로 편집하는 방법은 무엇입니까?
- 23. asp.net에서 doc 파일을 읽고 편집하는 방법은 무엇입니까?
- 24. objective-c에서 PDF를 편집하는 방법은 무엇입니까?
- 25. ASP.NET MVC에서 개별 필드를 편집하는 방법은 무엇입니까?
- 26. 안드로이드 벌집에서 EditTextPreference를 편집하는 방법은 무엇입니까?
- 27. PHP에서 쿠키를 추가/편집하는 방법은 무엇입니까?
- 28. ASP.NET HTML 본문 변수를 편집하는 방법은 무엇입니까?
- 29. 검색 가능한 사전 목록을 편집하는 방법은 무엇입니까?
- 30. PHP를 사용하여 .htpasswd를 편집하는 방법은 무엇입니까?
당신이 메모리에 POM을 수정 하시겠습니까? 파일 시스템에 기록해야합니까? –
나는 한 번 같은 질문을 한 것 같아. [여기] (http://stackoverflow.com/questions/2131365/is-there-a-java-class-that-generates-a-pom-xml-file) 희망이 도움이됩니다. – Random