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

В настоящее время я пишу плагин 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"

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


person Robert Munteanu    schedule 25.07.2013    source источник
comment
Звучание очень интересное. Этот плагин с открытым исходным кодом? Я был бы заинтересован в этом.   -  person khmarbaise    schedule 26.07.2013
comment
Пока нет, и я не могу обещать этого.   -  person Robert Munteanu    schedule 28.07.2013


Ответы (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>
person Robert Munteanu    schedule 25.07.2013