我有一个包含几个子项目的多模块项目,其中一个使用了maven android插件:
+-------------+
| Aggregator |
| Module |
+-------------+
+-------------+ +-------------+ +-------------+
| Module 1 | | Module 2 | | Module 3 |
| (android) | | | | |
+-------------+ +-------------+ +-------------+ 我经常从模块1运行以下命令:
module-1 $ mvn clean install android:redeploy这很好用,因为模块1在它的pom中声明了android插件。
对我来说,运行相同的命令会很方便,例如。mvn clean install android:redeploy,并且让maven知道它应该在所有子模块中运行“清理”和“安装”,并且只在支持它的模块中运行"android:redeploy“,即模块1。
相反,当我试图从聚合器模块运行该命令时,我得到了一个错误,说“错误解析插件的版本”,这是有意义的,因为它还没有在聚合器中声明,实际上在聚合器中声明是没有意义的。
在这种情况下,有没有一种聪明的方法可以将我的模块配置为“做正确的事情”,这样我就不必在两个单独的目录中运行maven?
发布于 2011-10-25 20:26:48
将插件的pluginManagement子句添加到父项目中。
当您将一个<plugin/>元素放入<pluginManagement/>中时,这意味着它会在需要时提供该插件的配置,但不会指示maven运行它。
您在该配置中放置了一个<skip>${skip-android}</skip> (假设此插件支持标准模式。
在聚合器中将skip-android属性设置为true。
然后配置各个项目,在这些项目中,将skip-android属性设置为false是有意义的。
https://stackoverflow.com/questions/7887781
复制相似问题