我正在开发一个用于与外部服务交互的库。这个外部服务有自己的库,但我希望我的库的用户选择在编译/运行时使用的特定版本。
确保在开发库时没有版本冲突的最佳做法是什么?我应该在我的POM中指定外部服务库的最低版本,然后如果客户端指定更高版本,它将被使用,因为它最近的"?
例如,我的库的POM可能如下所示:
<dependency>
<groupId>org.external-library</groupId>
<artifactId>external-library</artifactId>
<version>${minimum-supported-version}</version>
</dependency>
然后客户可以这样做:
<dependency>
<groupId>org.my-library</groupId>
<artifactId>my-library</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.external-library</groupId>
<artifactId>external-library</artifactId>
<version>${latest-supported-version}</version>
</dependency>