Maven 检查所有的依赖是否已经释放

Maven check that all dependencies have been released

作为发布过程的一部分,我使用 mvn versions:use-releases 目标将所有 -SNAPSHOT 依赖项替换为已发布的版本。在此之后,我想检查是否所有的 SNAPSHOT 依赖项都已被 releases 替换。

问题:如何查看?

我知道,maven 发布插件执行这样的检查是 release-prepare 目标的一部分,但我不想使用发布插件。

您可以使用 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 中并在需要时激活它(因此每当必须执行此检查时)。