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 中并在需要时激活它(因此每当必须执行此检查时)。
作为发布过程的一部分,我使用 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 中并在需要时激活它(因此每当必须执行此检查时)。