为什么我的Maven插件没有选择父属性?

时间:2009-08-03 15:54:16

标签: maven-2 maven-plugin

当我使一个插件扩展另一个插件时,它通常从父节点继承属性。有时它不起作用。 加载插件时,父项的属性都为null

我可能做错了什么?我将我的项目打包为maven-plugin并且构建正常。

1 个答案:

答案 0 :(得分:1)

我自己也看过这个,直到我调试了Plexus的内部结构,这让我很生气。我猜测当父项在另一个插件中时,属性不会被继承?

如果是这种情况,下面的解释将有所帮助。如果不是,它可能是Javadoc注释中的拼写错误。 Maven会在没有警告的情况下跳过它无法识别的任何标签。

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


如果父母在另一个项目中,这就是你遇到问题的原因。

Maven插件使用Javadoc注释来定义依赖项,目标声明和其他配置(Maven 2.1引入了适当的Java注释,但几乎没有任何插件使用它们)。一旦安装/部署了插件,Javadoc就会丢失,因此任何在另一个jar 中扩展插件的插件都无法访问父中的plexus定义的属性。

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