禁用 mvn 快照不起作用
Posted
技术标签:
【中文标题】禁用 mvn 快照不起作用【英文标题】:disable mvn snapshot didn't working 【发布时间】:2018-07-27 11:58:15 【问题描述】:根据this 的回答,我试图通过<enabled>false</enabled>
避免快照工件,但 maven 仍然从快照存储库下载工件并且不会使构建失败。
<repositories>
<repository>
<id>s3-snapshot</id>
<url>s3://my_url/snapshot</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
强制 maven 不使用快照伪影的最佳方法是什么?
【问题讨论】:
【参考方案1】:回答这个问题:
强制 maven 不使用快照伪影的最佳方法是什么?
如果在您的项目依赖项中找到任何快照版本,则 Maven Enforcer 插件的 requireReleaseDeps 规则会导致构建失败。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0-M1</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>
更新回复此:
我怎样才能使这条规则有条件,例如仅当命令行参数 -DisRelease=true
时,我才想运行此规则
只需将插件定义移动到配置文件下,例如...
<profiles>
<profile>
<id>release</id>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0-M1</version>
...
</plugin>
</plugins>
</profile>
</profiles>
...然后执行如下:
mvn clean install -Prelease
【讨论】:
谢谢@glytching,你能帮我吗,我怎样才能使这条规则有条件,例如我只想在命令行参数-DisRelease=true
时运行此规则以上是关于禁用 mvn 快照不起作用的主要内容,如果未能解决你的问题,请参考以下文章