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

在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()

欢迎任何帮助!

谢谢,约翰内斯