java+更新pom.xml文件_通过JAVA代码对pom.xml文件进行dependency的增加与删除操作

通过java代码对pom.xml文件进行操作,首先需要引入jar包:

org.apache.maven

maven-model

3.6.0

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

1.对xml文件进行增加操作:

代码中的key为:maven-model

Value为:

org.apache.maven

maven-model

3.6.0

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

/**

* 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 = getParam(paramValue, groupRgex);

//artifactId

String artifactRgex = "(.*?)";

artifactId = getParam(paramValue, artifactRgex);

//version

String versionRgex = "(.*?)";

version = getParam(paramValue, versionRgex);

try {

FileInputStream fis = new FileInputStream(new File(pomUrl));

Model model = reader.read(fis);

List 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;

}

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

/**

* @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;

}

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

注意:有的中不只含有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 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;

}

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值