因为我的增量版本号= CI版本号,所以我不想将增量版本号放入我的开发POM中。它应该只有主要和次要版本组件。
但是,同一框架中的另一个组件将要说“如果SNAPSHOT版本存在于本地,请使用它,否则使用最新的增量版本”。
如何在我的POM中指定这个?
我试过了:
<dependencies>
<dependency>
<groupId>com.example.ajb.versionpoc</groupId>
<artifactId>downstream</artifactId>
<version>[1.1-SNAPSHOT],[1.1,2.0)</version>
</dependency>
</dependencies>
但它不起作用。它仍然将版本解析为例如1.1.23。我怎么能告诉Maven更喜欢SNAPSHOT版本?
答案 0 :(得分:0)
我并不清楚你想要做什么,但这是一般性协议:
答案 1 :(得分:0)
基于@ DB5关于配置文件的建议,我认为您可以声明一个包含快照依赖关系的特定配置文件。可以根据本地存储库中该库的存在来激活此类配置文件。
在你的pom的profiles
部分添加这个片段:
<profile>
<!--This profile will prefer the SNAPSHOT version if it exists locally-->
<id>local</id>
<activation>
<file>
<exists>${user.home}/.m2/repository/mygroup/myartifact/myversion-SNAPSHOT/myartifact-myversion-SNAPSHOT.jar</exists>
</file>
</activation>
<dependencies>
<dependency>
<groupId>mygroup</groupId>
<artifactId>myartifact</artifactId>
<version>myversion-SNAPSHOT</version>
</dependency>
</dependencies>
</profile>
<profile>
<!--This profile will prefer the released version if the SNAPSHOT does not exist locally-->
<id>released</id>
<activation>
<file>
<missing>${user.home}/.m2/repository/mygroup/myartifact/myversion-SNAPSHOT/myartifact-myversion-SNAPSHOT.jar</missing>
</file>
</activation>
<dependencies>
<dependency>
<groupId>mygroup</groupId>
<artifactId>myartifact</artifactId>
<version>myversion</version>
</dependency>
</dependencies>
</profile>