【发布时间】:2009-08-03 15:54:15
【问题描述】:
当我让一个插件扩展另一个插件时,它通常会从父级继承属性。有时它不起作用。 加载插件时,父级的属性全部为空
我可能做错了什么?我将我的项目打包为一个 maven-plugin 并且它可以构建。
【问题讨论】:
标签: maven-2 maven-plugin
当我让一个插件扩展另一个插件时,它通常会从父级继承属性。有时它不起作用。 加载插件时,父级的属性全部为空
我可能做错了什么?我将我的项目打包为一个 maven-plugin 并且它可以构建。
【问题讨论】:
标签: maven-2 maven-plugin
我亲眼目睹了这一点,直到我调试了 Plexus 的内部结构,我才发疯。我猜当父级在另一个插件中时属性不会被继承?
如果是这样,下面的解释会有所帮助。如果不是,则可能是 Javadoc 注释中的拼写错误。 Maven 将跳过任何它无法识别的标签而不发出警告。
如果两者都不是,你能发布更多细节吗?也许是失败的 Mojo 的一个例子?
如果父级在另一个项目中,这就是您遇到问题的原因。
Maven 插件使用 Javadoc 注释来定义依赖关系、目标声明和其他配置(Maven 2.1 引入了适当的 Java 注释,但几乎没有插件使用它们)。一旦插件被安装/部署,Javadoc 就会丢失,因此在另一个 jar 中扩展插件的任何插件将无法访问父级中 plexus 定义的属性。
虽然有一个解决方法。插件元数据输出到 META-INF/maven/plugin.xml。有一个third-party plugin 从父Mojo 的plugin.xml 中读取信息并将本地插件元数据与其合并。然后您的插件应该可以正常工作了。
【讨论】: