根据依赖版本设置 Maven 属性

Set Maven property based on dependency version

我正在使用 Maven 和 Tycho 组装一个 Eclipse 插件,其中我的一个 Maven 项目聚合了该项目的非 OSGi 依赖项并将它们捆绑为一个 Eclipse 插件(这样 Tycho 和我的主要插件将能够使用它们)

我遇到了一个问题,我的依赖项之一应该始终是最新版本的 jar,例如:

<properties>
    <binary-version>LATEST</binary-version>
<properties>
<dependencies>
    <dependency>
        <groupId>com.imaginary.group</groupId>
        <artifactId>needed-binaries</artifactId>
        <version>${binary-version}</version>
    <dependency>
</dependencies>

(仅供参考,实际的依赖项是我们内部部署的东西,否则我会给出实际的 groupId/artifactId)

此聚合器项目的所有依赖项都被复制到一个名为 maven-libs 的目录中,以便可以将它们捆绑在一起。

当我尝试将此 jar 包含在我的聚合器项目中时,我需要在 build.properties 文件中指定它,如下所示:

bin.includes = META-INF/,\
               .,\
               maven-libs/necessary-binaries-1.2.3.jar

每当 necessary-binaries 版本号发生变化时,这都会失败,因为文件名也会发生变化

我可以将 Maven 属性添加到 build.properties,但是:

bin.includes = META-INF/,\
               .,\
               maven-libs/necessary-binaries-${binary-version}.jar

直接解析为necessary-binaries-LATEST.jar,而不是替换为最新版本

所以我的问题是:当我解析 needed-binaries 的最新版本时,我可以将该版本设置为 属性 吗?然后我可以在 build.properties 文件

中使用 属性

使用 LATEST 是一项已弃用的功能。最好使用真实的版本号,用版本插件更新。