我有一个取决于A-api的my-api。
我的客户端将明确依赖于A-api,因此我可能需要按照提供的方式声明此依赖关系。
我不想在我的my-api的pom上声明A-api上的硬编码版本依赖,我想要一个最低版本,因为A-api的团队将保证其Api将与前者相容
my-api的pom:
<dependency>
<groupId>org.mygroup</groupId>
<artifactId>A-api</artifactId>
<version>a-at-least-version</version><!--I only want a lowest version that i need-->
<scope>provided</scope><!--Should I declare it as provided? -->
</dependency>
我的客户将使用我们的两个api:
<!--Notice, my client will explicitly declare dependency on A-api, and this may be higher than what my-api dependent on. This api will update more frequently than my-api-->
<dependency>
<groupId>org.mygroup</groupId>
<artifactId>A-api</artifactId>
<version>may-be-a-newer-version</version>
</dependency>
<!--My client will also dependent on my-api with a statble version-->
<dependency>
<groupId>org.mygroup</groupId>
<artifactId>my-api</artifactId>
<version>one-version</version>
</dependency>
答案 0 :(得分:0)
@michaldo似乎已经通过评论回答了这个问题,但是如果您一心一意地做到这一点,则可以使用此表示法。
<dependency>
<groupId>org.mygroup</groupId>
<artifactId>A-api</artifactId>
<version>[x.y,)</version><!--I only want a lowest version that i need-->
<scope>provided</scope><!--Should I declare it as provided? -->
</dependency>
请参考resolving version ranges上的Maven文档。