Java Maven:通过属性访问可传递依赖项的版本

Java Maven:通过属性访问可传递依赖项的版本,java,maven,ant,properties,Java,Maven,Ant,Properties,在Maven项目中,我的一个直接依赖项有一个间接依赖项com.foo:bar。 我需要的是一个Maven属性(例如,${bar version}),带有此工件的版本号。对于几个间接依赖项的版本号,我需要这种机制 我从中了解到,我可以使用antrun插件中的${maven.dependency.com.foo.bar.jar.path}访问工件jar的本地路径。我现在使用的解决方法是在antrun执行中解析其值(例如,/path/to/repository/com/foo/bar/2.1.1/ba

在Maven项目中,我的一个直接依赖项有一个间接依赖项com.foo:bar。 我需要的是一个Maven属性(例如,
${bar version}
),带有此工件的版本号。对于几个间接依赖项的版本号,我需要这种机制

我从中了解到,我可以使用antrun插件中的
${maven.dependency.com.foo.bar.jar.path}
访问工件jar的本地路径。我现在使用的解决方法是在antrun执行中解析其值(例如,
/path/to/repository/com/foo/bar/2.1.1/bar-2.1.1.jar
),并在其中定义一个属性(配置
exportAntProperties
是我的朋友)。然而,由于ant中没有很好的字符串正则表达式操作,这相当麻烦

还有像
${maven.dependency.com.foo.bar.jar.path}
这样的属性吗?我尝试了
${maven.dependency.com.foo.bar.jar.version}
,但没有成功。我也想了解这一财产背后的机制。它有Java类支持吗?类似于
project.organization.name
在相应的Maven类中是
getProject().getOrganizarion().getName()

欢迎任何帮助

谢谢,
Johannes使用dependencyManagement来影响可传递依赖项。或者,您可以将这些间接DEP显式地添加到您自己的pom中,以便修复它们。我不想影响/覆盖依赖项。我想要的是我的直接依赖项使用的com.foo:bar的确切版本,而不仅仅是将其写入pom文件。这很容易出现打字错误-我可能会意外地使用错误的版本。此外,我希望在使用较新版本的直接依赖项时自动更新它。这不仅仅是一个依赖项,我还想提取5个间接依赖项版本号。