我正在创建一个本身具有依赖项 DEP 的 Maven 插件。DEP 可以是多个版本之一。我需要的是消费者必须明确提及 DEP 及其版本。我不希望消费者使用对 DEP 的隐式依赖并在我发布新 DEP 时自动获取新版本。
这是我现在所拥有的,但这意味着如果在消费者的 pom 中未指定 DEP,那么他们将始终获得最新的。
在我的插件的依赖部分,我有这个:
<dependencies>
<dependency>
<groupId>org.foo.bar</groupId>
<artifactId>DEP</artifactId>
<version>[1.8.3-01,9.9.9)</version>
</dependency>
...
</dependencies>
然后,有人使用我的插件:
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<compilerId>my-compiler-id/compilerId>
</configuration>
<dependencies>
<dependency>
<groupId>org.foo.bar</groupId>
<artifactId>my-compiler</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
在上述情况下,一切都适用于消费者,他们总是获得最新版本的DEP
. 如果他们想要特定版本的 DEP,那么他们需要在他们的 pom 中显式添加它,就像在 maven-compiler-plugin 的依赖项部分中一样:
<dependency>
<groupId>org.foo.bar</groupId>
<artifactId>DEP</artifactId>
<version>1.8.6-09</version>
</dependency>
现在,这个额外的显式依赖是可选的。如果缺少,则使用最新的。我想让这种依赖成为强制性的。我怎么做?