Maven: привязать выполнение плагина к выполнению другого плагина, а не к фазе жизненного цикла

Примечание относительно принятого ответа: Я принял ответ из-за убедительных косвенных доказательств. Тем не менее, это косвенные доказательства, так что возьмите его с собой.

Как я могу запустить плагин, когда пользователь запускает цель плагина, а не фазу жизненного цикла? (Этотбыл задан вопрос раньше, но ответом было использование фазы жизненного цикла.)

Показательный пример: мне нужноrelease:branch вызыватьregex-plugin создать ветку с текущей версией в качестве имени,минус суффикс -SNAPSHOT, Это то, что у меня есть, что требует от разработчика активации профиля и вызоваverify фаза. Мне нужен разработчик, чтобы просто вызватьrelease:branchчто в свою очередь должно вызыватьregex-plugin бежать. В небольшом браке с Gitflow.

<profile>
    <id>Release Branch</id>
    <build>
        <plugins>
            <!-- On validate, compute the current version without -SNAPSHOT. -->
            <!-- Put the result in a property. -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.7</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>regex-property</goal>
                        </goals>
                        <configuration>
                            <value>${project.version}</value>
                            <regex>^(.*)-SNAPSHOT
<profile>
    <id>Release Branch</id>
    <build>
        <plugins>
            <!-- On validate, compute the current version without -SNAPSHOT. -->
            <!-- Put the result in a property. -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.7</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>regex-property</goal>
                        </goals>
                        <configuration>
                            <value>${project.version}</value>
                            <regex>^(.*)-SNAPSHOT$</regex>
                            <replacement>$1</replacement>
                            <name>project.unqualifiedVersion</name>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!-- Also on validate, run the branch plugin, and use -->
            <!-- the non-SNAPSHOT version thus computed in the branch name. -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.3.2</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>branch</goal>
                        </goals>
                        <configuration>
                            <branchName>release/${project.unqualifiedVersion}</branchName>
                            <updateWorkingCopyVersions>true</updateWorkingCopyVersions>
                            <updateBranchVersions>false</updateBranchVersions>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</profile>
lt;/regex> <replacement>$1</replacement> <name>project.unqualifiedVersion</name> </configuration> </execution> </executions> </plugin> <!-- Also on validate, run the branch plugin, and use --> <!-- the non-SNAPSHOT version thus computed in the branch name. --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>2.3.2</version> <executions> <execution> <phase>validate</phase> <goals> <goal>branch</goal> </goals> <configuration> <branchName>release/${project.unqualifiedVersion}</branchName> <updateWorkingCopyVersions>true</updateWorkingCopyVersions> <updateBranchVersions>false</updateBranchVersions> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile>

Намерение дляrelease:branch переместить текущую версию снимка (скажем,1.0.5-SNAPSHOT) в новую ветку, которая должна быть названа в честь версии, но без лишних-SNAPSHOT суффикс (1.0.5). Затем текущая ветвь должна принять новую версию снимка (1.1.0-SNAPSHOTне1.0.6-SNAPSHOTпотому что мы хотим освободить1.0.x чтобы иметь место для исправлений, поэтому мы зарезервировали его для ветви) (у меня пока нет автоматического вычисления следующей версии моментального снимка, поэтому, если вы запускаете конфигурацию Maven выше сvalidateВам нужно будет ввести его по запросу).

Ответы на вопрос(2)

Ваш ответ на вопрос