Переопределение компонента сплетения, объявленного в другом плагине

В настоящее время я пишу плагин Maven с автоматическим выпуском модулей

  • обнаружение, если модуль имеет изменения, которые должны быть выпущены
  • выпуская все модули, используя maven-release-plugin
  • корректировка зависимостей во всех затронутых проектах

Я пытаюсь проверить это с помощью maven-invoker-plugin, который использует следующую настройку в интеграционных тестах:

  <build>
    <plugins>
      <plugin>
        <groupId>@project.groupId@</groupId>
        <artifactId>@project.artifactId@</artifactId>
        <version>@project.version@</version>
        <executions>
          <execution>
            <id>my-id</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>my-goal</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

Контрольно-пропускной пункт, который я бью, состоит в том, что maven-dependency-plugin запрещает этот выпуск, так как я ссылаюсь на плагин SNAPSHOT в моем pom.xml (@project.version@ выше). Справедливо.

Я обнаружил, что эта проверка выполняется в CheckDependencySnapshotsPhase, который является компонентом сплетения:

@ plexus.component role = "org.apache.maven.shared.release.phase.ReleasePhase" role-hint = "check-dependency-snapshots"

Могу ли я как-то переопределить этот компонент и подключить свой собственный? В качестве альтернативы, как я могу запустить этот интеграционный тест, не блокируясь проверкой "нет зависимостей моментального снимка"?

1 ответ

Решение

Оказывается, ответ был прямо передо мной. Вместо настройки плагина в ИТ-проекте pom.xml, просто укажите maven-invoker-plugin выполнить его (сокращенно):

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-invoker-plugin</artifactId>
        <configuration>
          <goals>
            <goal>package</goal>
            <goal>${project.groupId}:${project.artifactId}:${project.version}:inspect-changes</goal>
          </goals>
        </configuration>
      </plugin>
Другие вопросы по тегам