我正在研究多模块项目。我想在构建其中一个模块后运行我的插件。这个mojo应该只能直接从CLI运行,并且不能连接到阶段,因为在某些我们不希望运行此目标的环境中。
配置我的插件的最佳方法是什么?它应该在父级内配置还是应该在模块内配置?
如果我在父模块和模块中配置它会模块配置覆盖父配置吗?
如果我只在父内部配置它,我可以在模块文件夹中运行它吗?
目前我只在my-module中配置它,我从父文件夹
运行它mvn -pl my-module groupId:artifactId:myGoal
看起来我必须使用完全限定名称。我想这是因为父母对这个插件一无所知。
答案 0 :(得分:1)
如果您希望每次构建都执行一次插件,请在Mojo上使用@aggregator
注释。这向Maven发出信号仅在Maven构建中执行一次mojo,除非它明确地绑定到生命周期阶段。您可以在Mojo API Specification page.
如果您想避免声明mojo的完全限定名称,可以在settings.xml的pluginGroups
部分配置groupId。您也可以在pom.xml的pluginManagement
部分指定它,但我不确定这是否适用于您的用例。