Jenkins:如何通过readMavenPom或mvn help:evaluate获取pom.xml特定依赖版本
获取Maven特定依赖版本的实用方法
一、通过readMavenPom返回的Model对象获取
不管依赖是直接在dependencies节点还是dependencyManagement里,都可以通过遍历集合匹配坐标拿到版本:
- 直接依赖的情况:
Model model = readMavenPom(new File("pom.xml")); for (Dependency dep : model.getDependencies()) { if ("你的依赖groupId".equals(dep.getGroupId()) && "你的依赖artifactId".equals(dep.getArtifactId())) { String targetVersion = dep.getVersion(); // 拿到版本号做后续处理 break; } }
- 依赖管理中的情况:
if (model.getDependencyManagement() != null) { for (Dependency dep : model.getDependencyManagement().getDependencies()) { if ("你的依赖groupId".equals(dep.getGroupId()) && "你的依赖artifactId".equals(dep.getArtifactId())) { String targetVersion = dep.getVersion(); break; } } }
二、用mvn help:evaluate精准获取
之前没效果是因为没指定正确的表达式,直接用依赖坐标作为表达式即可,执行命令:
mvn help:evaluate -Dexpression=dependency.[groupId]:[artifactId]:version -q -DforceStdout
把[groupId]和[artifactId]替换成你要查的依赖的实际坐标,比如查Spring Core的版本就写成:
mvn help:evaluate -Dexpression=dependency.org.springframework:spring-core:version -q -DforceStdout
-q参数用来过滤掉无关日志,-DforceStdout确保只输出版本号,方便直接使用。
内容的提问来源于stack exchange,提问作者DesperateMau
相关产品推荐
相关产品推荐

