Maven проверяет, что все зависимости были выпущены

В рамках моего процесса выпуска я использую mvn versions:use-releases цель, чтобы заменить все зависимости -SNAPSHOT выпущенными версиями. После этого я хочу проверить, все ли зависимости SNAPSHOT были заменены релизами или нет.

Вопрос: как это проверить?

Я знаю, плагин выпуска maven выполняет такую ​​проверку как часть цели release-prepare, но я не хочу использовать плагин выпуска.


person Mikhail Chibel    schedule 30.06.2016    source источник


Ответы (1)


Вы можете использовать maven-enforcer-plugin, чтобы дважды проверить, является ли какая-либо зависимость SNAPSHOT еще есть или нет.

Из официального примера правила requireReleaseDeps:

<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 и активировать ее, когда требуется (следовательно, всякий раз, когда эта проверка должна выполняться).

person A_Di-Matteo    schedule 30.06.2016
comment
Вы также можете запустить это как одноразовый из командной строки с помощью mvn enforcer:enforce -Drules=requireReleaseDeps - person Ivan G.; 11.01.2021