java - Maven MOJO : Get execution configuration in runtime

标签 java maven annotations execution mojo

我正在开发一个 Maven 插件。

当maven实例化mojo类时,注释为@Parameter的字段将由maven“依赖注入(inject)”,因为子节点是在project/build/plugins/plugin/executions/execution标记内定义的。

像这样:

@Parameter(defaultValue = "${basedir}/src", alias = "src")
private String sourcePath;

将被填充

<configuration>
    <src>${basedir}/whatever</src>
</configuration>

.

有没有办法通过一些java调用来获取配置? 我知道我可以使用

public Xpp3Dom org.apache.maven.plugin.MojoExecution.getConfiguration()

要检索该配置,问题是在这种情况下属性未解析,因此我得到 sourcePath 的“${basedir}/whatever”,属性的 ${} 未解析。我需要解决它们,无论它们是什么。

有没有办法在运行时获取解析值?

谢谢

最佳答案

用以下方式注释你的魔力:

@Mojo(name = "mymojoid", defaultPhase = LifecyclePhase.PACKAGE, requiresDependencyResolution = ResolutionScope.COMPILE_PLUS_RUNTIME)
public class MyMojo extends AbstractMojo{}

然后这些值将自动解析

关于java - Maven MOJO : Get execution configuration in runtime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24363663/

相关文章:

java - 如何转换名为 `q` 的 double 值并显示小数点之前/之后的值?

java - 如何掌握android开发?

java - FindBugs 2.0 中弃用的注释

groovy - Spring Boot groovy编译错误: Unexpected token @ @ line 45

maven - 如何获得 mvn 帮助 :describe to show phases of the default lifecycle

java - QueryDsl,结合标准 JPA 和 Hibernate 的类级 @Where 注释?

java - 部署 war 在 docker 中抛出类未找到异常

java - Selenium WebDriver Safari (11.0) TypeError : Value is not a sequence

eclipse - 找不到LibGDX + Gradle + Maven对Tween Engine的引用

apache - 如何包含 Ivy 依赖项而不包含其任何依赖项?