禁用mvn快照不起作用

时间:2018-02-16 14:40:13

标签: java maven build pom.xml

根据this的答案,我试图通过font-size:initial来避免快照伪像,但是maven仍然会从快照存储库中下载文物并且不会使构建失败。

.row-fluid-wrapper.row-depth-1.row-number-3 {
  text-align: center;
  border: 1px solid red;
  font-size: 0;
}

.row-fluid [class*="span"] {
  border: 1px solid blue;
  display: inline-block;
  margin: 0 .1%;
  box-sizing: border-box;
  height: 150px;
  font-size: initial;
}

.row-fluid .span4 {
  width: 31.914893614%;
}

强制maven不使用快照文物的最佳方法是什么?

1 个答案:

答案 0 :(得分: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>

更新以回复此信息:

  

我怎样才能使这条规则有条件,例如我想仅在cmd-line param -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