簡體   English   中英

Maven 檢查所有依賴項是否已釋放

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM