禁用 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 快照不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 事件侦听器不起作用,我无法接收正确的快照

为什么我的简单CSS滚动快照不起作用?

禁用目录浏览 apache 不起作用

为啥禁用舞台可调整大小在 javafx 中不起作用?

为啥 MySQL 禁用加载本地 infile 不起作用?

PickerView 被禁用并且在 SwiftUI 中不起作用