通過JAVA代碼對pom.xml文件進行dependency的增加與刪除操作


通過java代碼對pom.xml文件進行操作,首先需要引入jar包:

<!--pom.xml文件解析--> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-model</artifactId> <version>3.6.0</version> </dependency>

1.對xml文件進行增加操作:

代碼中的key為:maven-model

Value為:

<dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-model</artifactId> <version>3.6.0</version> </dependency>
/**
 * xml中添加組件
 * @param url 路徑
 * @param paramKey 組件key
 * @param paramValue 組件value
 * @return
 */
@Override
public boolean addXml(String url, String paramKey, String paramValue) {
    MavenXpp3Reader reader = new MavenXpp3Reader();
    String pomUrl = url+"\\pom.xml";

    String groupId = "";
    String artifactId = "";
    String version = "";

    //groupId
    String groupRgex = "<groupId>(.*?)</groupId>"; groupId = getParam(paramValue, groupRgex); //artifactId String artifactRgex = "<artifactId>(.*?)</artifactId>"; artifactId = getParam(paramValue, artifactRgex); //version String versionRgex = "<version>(.*?)</version>"; version = getParam(paramValue, versionRgex); try { FileInputStream fis = new FileInputStream(new File(pomUrl)); Model model = reader.read(fis); List<Dependency> dependencies = model.getDependencies(); Dependency addDependency = new Dependency(); addDependency.setGroupId(groupId); addDependency.setArtifactId(artifactId); addDependency.setVersion(version); dependencies.add(addDependency); model.setDependencies(dependencies); MavenXpp3Writer mavenXpp3Writer = new MavenXpp3Writer(); mavenXpp3Writer.write(new FileWriter(pomUrl),model); } catch (IOException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } return true; }
/**
 * @description 獲取匹配模式的正則
 * @param param 參數
 * @param rgex 正則表達式
 * @return
 */
private String getParam(String param, String rgex) {
    Pattern groupPattern = Pattern.compile(rgex);// 匹配的模式
    Matcher group = groupPattern.matcher(param);
    String id = "";
    while(group.find()){
        id = group.group(1);
    }
    return id;
}

注意:有的<dependency>中不只含有groupId、artifactId、version,需要進行具體分析

2.對xml文件進行刪除操作:

/**
 * 刪除xml中依賴
 * @param url 路徑
 * @param paramKey 組件key
 * @param paramValue 組件value
 * @return
 */
@Override
public boolean deleteXml(String url, String paramKey, String paramValue) {
    MavenXpp3Reader reader = new MavenXpp3Reader();
    String pomUrl = url+"\\pom.xml";

    try {
        FileInputStream fis = new FileInputStream(new File(pomUrl));
        Model model = reader.read(fis);
        List<Dependency> dependencies = model.getDependencies(); for (Dependency dependency:dependencies) { String artifactId = dependency.getArtifactId(); if(artifactId.equals(paramKey)){ dependencies.remove(dependency); break; } } MavenXpp3Writer mavenXpp3Writer = new MavenXpp3Writer(); mavenXpp3Writer.write(new FileWriter(pomUrl),model); } catch (IOException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } return true; }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM