首页 > 解决方案 > 如何在执行插件时忽略聚合器 POM 中的模块

问题描述

我需要在我的聚合器 POM 上执行一个自定义插件,该插件应该检查​​子模块。由于子模块文件夹和 POM 尚不存在,我总是收到如下错误:

The project ... has 1 error
[ERROR]     Child module ... of parentproject\pom.xml does not exist

执行插件时是否可以忽略模块?

我的魔力宣言

@Mojo(name = "checkout", aggregator = true)
public class CheckoutMojo extends AbstractMojo {

标签: mavenpom.xmlparent-pom

解决方案


我能够通过在 POM 中引入配置文件并在配置文件中移动所有模块名称来解决这个问题。由于 maven 在加速时没有找到任何模块,所以它按预期加速,然后我的 mojo 被执行。现在应该在不存在模块的情况下运行的 mojo 被称为:

mvn groupId:artifactId:version:goalname

应该与模块一起运行的 mojo 被称为:

mvn groupId:artifactId:version:goalname -Pprofile_having_modules

推荐阅读