如何声明至少版本maven的依赖关系

时间:2016-09-06 03:07:20

标签: maven

我有一个取决于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>

1 个答案:

答案 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文档。