2016-06-30 53 views
2

作爲我發佈過程的一部分,我使用mvn versions:use-releases目標用發佈的版本替換所有的-SNAPSHOT依賴關係。在此之後,我想檢查是否所有的SNAPSHOT依賴項已被替換爲版本。Maven檢查是否已發佈所有依賴關係

問題:我該如何檢查?

我知道,maven版本插件執行這樣一個檢查作爲release-prepare目標的一部分,但我不想使用發佈插件。

回答

4

您可以使用maven-enforcer-plugin來仔細檢查是否有任何SNAPSHOT依賴項存在或不存在。

從它requireReleaseDeps規則the official example

<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 profile中,並在需要時激活它(因此無論何時必須執行此檢查)。