Gil*_*ili 9 maven-2 maven-plugin
如何编写一个Mojo来设置另一个Mojo的配置?例如:Mojo A需要A.foo定义配置参数.用户可以A.foo手动指定或运行插件B,它将计算他/她的值.
回答我自己的问题:
可以使用MavenProject实例在运行时访问插件的配置或项目范围的属性:
/**
* The maven project.
*
* @parameter expression="${project}"
* @readonly
*/
private MavenProject project;
Run Code Online (Sandbox Code Playgroud)
然后,您可以在运行时访问插件的配置:
private Plugin lookupPlugin(String key)
{
List plugins = getProject().getBuildPlugins();
for (Iterator iterator = plugins.iterator(); iterator.hasNext();)
{
Plugin plugin = (Plugin) iterator.next();
if(key.equalsIgnoreCase(plugin.getKey()))
return plugin;
}
return null;
}
...
Xpp3Dom configuration = (Xpp3Dom) Plugin.getConfiguration()
configuration.getChild("parameterName"); // get parameter
configuration.addChild(new Xpp3Dom("parameterName")); // add parameter
...
Run Code Online (Sandbox Code Playgroud)
注意:在当前阶段结束时将丢弃任何配置更改.
来源:从自定义mojo访问maven插件的运行时配置的最佳方式?
或者,您可以使用获取/设置项目范围的参数MavenProject.getProperties().