Maven中如何禁止插件(plugin)在子模块(module)上执行
2013-12-07 20:38
801 查看
在多模块工程下,在父工程下执行的插件默认会在其所有的子模块上也执行一遍,大多数情况下这是合理的,比如像compiler这样的插件,但是有时候也种行为可能并不是开发人员所期望的,比如使用exec插件调用一个外部脚本或命令,一般来说开发人员只希望在父工程下maven exec:exec来执行一次该命令即可,但在多模块下,你会发现这个同样的命令被执行了多次,多出来的执行是在每个子模块上执行的,于是我们需要一种方法来禁用插件在子模块上的执行,一般来说两个方法:
一:查阅插件的文档,某些插件会主动提供禁用配置,以exec插件为例,如果子模块想禁用插件可以这样配置:
二:将指定的execution(注意命令行执行的exectuion是default-cli)的phase设置为none,其实这是有点hack的做法,目地是将这个exection绑定到一个不存在的phase上,这样它就永远不会被触发执行了。以jar插件为例:
另外,补充一点:对于你exec这样的插件,虽然插件被禁用了,但是maven的命令行还会输出INFO信息告知某某模块的exec被skip了,这些信息会干扰一个外部脚本或命令执行的输出,所以你可以在maven exec:exec的后面加上-q参数来disable maven的日志信息。
一:查阅插件的文档,某些插件会主动提供禁用配置,以exec插件为例,如果子模块想禁用插件可以这样配置:
<!-- Disable plugin exec running on sub-modules --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>${exec.version}</version> <configuration> <skip>true</skip> </configuration> </plugin>
二:将指定的execution(注意命令行执行的exectuion是default-cli)的phase设置为none,其实这是有点hack的做法,目地是将这个exection绑定到一个不存在的phase上,这样它就永远不会被触发执行了。以jar插件为例:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>${jar.version}</version> <executions> <execution> <id>default-jar</id> <phase>none</phase> </execution> </executions> </plugin>
另外,补充一点:对于你exec这样的插件,虽然插件被禁用了,但是maven的命令行还会输出INFO信息告知某某模块的exec被skip了,这些信息会干扰一个外部脚本或命令执行的输出,所以你可以在maven exec:exec的后面加上-q参数来disable maven的日志信息。
相关文章推荐
- Netbeans 插件模块(Plugin Module)的开发
- 使用 maven 插件 maven-shade-plugin 对可执行 java 工程及其全部依赖 jar 进行打包
- maven-war-plugin 插件打包时,src/main/java 目录下mybatis的映射文件如何配置
- Netbeans 插件模块(Plugin Module)的开发
- 使用eclipse执行maven-release-plugin插件发布jar异常问题(.project)(Cannot prepare the release because you have local modifications )
- maven:sql-maven-plugin插件执行sql脚本
- Netbeans 插件模块(Plugin Module)的开发
- eclipse中如何通过maven插件执行mvn命令
- 使用 maven 插件 maven-shade-plugin 对可执行 java 工程及其全部依赖 jar 进行打包
- 如何解决DbUnit的Maven插件在执行过程中出现的侵犯外键约束错误(MySQLIntegrityConstraintViolationException)
- Maven Assembly Plugin - 如何将Maven工程打成一个可执行jar包
- maven插件不执行-build-helper-maven-plugin pom中不执行
- 多模块Maven项目如何使用javadoc插件生成文档
- maven-resources-plugin 如何禁止修改二进制文件
- 多模块Maven项目如何使用javadoc插件生成文档
- Maven插件(plugin)goal的执行与生命周期(lifecycle)phase的关系
- Chromium插件(Plugin)模块(Module)加载过程分析
- Java之——使用 maven 插件 maven-shade-plugin 对可执行 java 工程及其全部依赖 jar 进行打包
- JIRA开发(四):插件模块类型(JIRA Plugin Module Types)
- Netbeans 插件模块(Plugin Module)的开发