Передача значения из Mojo в pom

Я разрабатываю плагин maven, у меня есть параметр под названием «FinalVersion», который создается как @Parameter в Mojo, и его значение устанавливается в классе Mojo. Мне нужно передать «finalversion» в мой файл pom и использовать его как элемент в конфигурации другого плагина. как это:

@Mojo(name = "validate", defaultPhase = LifecyclePhase.COMPILE)
public class VersionValidatorMojo extends AbstractMojo{
    .
    .

    @Parameter(property = "finalVersion")
    private String finalVersion ;

и я хочу иметь что-то подобное в моем pom.xml

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>custom-maven-release-plugin</artifactId>
                <configuration>
                    <goals>release</goals>
                    <version>finalversion</version>
                </configuration>
            </plugin>

ТАКЖЕ в моем сценарии у меня есть версия проекта, установленная разработчиком и не полученная от SCM, какой плагин я могу использовать?

Лучшие


person frdsprtrdr    schedule 07.02.2020    source источник


Ответы (1)


ваш POM должен использовать тег finalVersion

            <configuration>
                <finalversion>X.Y</finalversion>
            </configuration>

Вот еще один полный пример с параметром, называемым местоположениями.

        <plugin>
            <groupId>mygroup</groupId>
            <artifactId>myapp</artifactId>
            <version>${project.version}</version>
            <configuration>
                <locations>
                    <param>${basedir}/src/main/resources/db/toBeIncluded</param>
                    <param>${basedir}/src/main/resources/db/migration/upgrade</param>
                </locations>
            </configuration>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <goals>
                        <goal>validate</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

В моей реализации Mojo я определил

    @Parameter
    private String[] locations;
person Beppe C    schedule 07.02.2020
comment
Спасибо, но мне не нужно менять финальную версию в моем pom, мне просто нужно использовать ее как вход для другого плагина. на самом деле я устанавливаю только финальную версию в моем моджо, и она доступна только для чтения. какие-либо предложения? - person frdsprtrdr; 13.02.2020
comment
Вот что я предлагаю, я привел пример на основе вашего кода. В моем проекте у меня есть следующее, например, ‹plugin› ‹groupId›mygroup‹/groupId› ‹artifactId›myapp‹/artifactId› ‹version›${project.version}‹/version› ‹configuration› ‹locations› ‹param› ${basedir}/src/main/resources/path‹/param› ‹/locations› ‹/configuration›, где location — это @Parameter в моей реализации Mojo - person Beppe C; 13.02.2020
comment
а теперь представьте, что вам нужно использовать параметр местоположения в части вашего pom.xml, как мы можем это сделать? - person frdsprtrdr; 13.02.2020
comment
Я разработал ответ, надеюсь, мы становимся ближе - person Beppe C; 13.02.2020