将值从Mojo传递到pom

问题描述 投票:3回答:1

我正在开发一个maven插件,我有一个名为“ FinalVersion”的参数,该参数在Mojo中作为@Parameter创建,并且其值在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获取,我可以使用哪个插件?

最佳

java maven maven-plugin mojo
1个回答
0
投票

您的POM应该使用finalVersion标签

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

这里是另一个完整的示例,带有一个名为locations的参数

        <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;
© www.soinside.com 2019 - 2024. All rights reserved.