2009-08-03 113 views
1

当我让一个插件扩展另一个插件时,它通常会继承父项的属性。有时它不起作用。 当插件加载时,来自父项的属性全为空为什么我的Maven插件不能获取父属性?

我会做什么错?我把我的项目打包成一个maven-plugin,并且它可以正常工作。

回答

1

我已经看到了这个我自己,它让我生气直到我调试了Plexus的内部。我猜这些属性不会在父类位于另一个插件时继承?

如果是这样的话,下面的解释会有所帮助。如果不是,则可能是Javadoc注释中的拼写错误。未经警告,Maven会跳过任何不能识别的标签。

如果不是这些,你可以发布一些更多的细节?也许是失败的Mojo的一个例子?


如果家长在另一个项目中,这就是您遇到问题的原因。

Maven插件使用的Javadoc注解来定义的依赖关系,目标的声明,以及其他配置(Maven的2.1引入了适当的Java注解,但几乎没有任何插件使用它们还)。一旦安装/部署了插件,Javadoc就会丢失,因此任何将插件扩展到另一个罐子的插件将无法访问父代中的丛定义属性。

虽然有一个解决方法。插件元数据输出到META-INF/maven/plugin.xml。有一个third-party plugin从父Mojo的plugin.xml中读取信息,并将本地插件元数据与它合并。你的插件应该可以正常工作。

+0

花了一些搞清楚你的​​意思是“这是解释” – 2009-08-03 17:38:04

相关问题