[英]Maven check that all dependencies have been released
作為我發布過程的一部分,我使用mvn versions:use-releases
目標將所有 -SNAPSHOT 依賴項替換為已發布版本。 在此之后,我想檢查是否所有 SNAPSHOT 依賴項都已被版本替換。
問題:我怎樣才能檢查它?
我知道,maven 發布插件執行這樣的檢查作為release-prepare
目標的一部分,但我不想使用發布插件。
您可以使用maven-enforcer-plugin
仔細檢查是否仍然存在任何 SNAPSHOT 依賴項。
來自其requireReleaseDeps
規則的官方示例:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>enforce-no-snapshots</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireReleaseDeps>
<message>No Snapshots Allowed!</message>
</requireReleaseDeps>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
</project>
請注意將fail
元素設置為true
,在這種情況下,如果找到任何SNAPSHOT
依賴項,則構建將失敗。
您可以將此類配置放在Maven 配置文件中,並在需要時激活它(因此每當必須執行此檢查時)。
maven-enforcer-plugin 的 requireReleaseDeps 內置規則不適用於插件的依賴關系。 這是一種非常罕見的情況,但插件可以攜帶自己的依賴項來增強其默認行為。
如果有人有興趣檢查插件的 SNAPSHOT 依賴項,請以這種方式配置 maven-enforcer-plugin:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>enforce-no-snapshots</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<!-- Add this rule (don't forget the 'implementation' hint! ) -->
<requireReleaseDepsInPlugins implementation="org.apache.maven.enforcer.rule.requireReleaseDepsInPlugins" />
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
<dependencies>
<!-- Add this dependency to the plugin -->
<dependency>
<groupId>io.github.thefolle</groupId>
<artifactId>glowing-waffle</artifactId>
<version>1.2.0</version>
</dependency>
</dependencies>
</plugin>
Glowing-waffle是執行器插件的自定義規則集合。 它定義了 requireReleaseDepsInPlugins 規則。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.