我的项目需要使用自定义的Maven插件,我正在寻找简单的方式来构建它,最好不要搞乱本地存储库。maven插件作为模块
让我们考虑简单的项目树:
root-project
|---pom.xml
|---my-library
| \---pom.xml
|---my-maven-plugin
| \---pom.xml
\---my-project
\---pom.xml
root-project
具有列为<modules>
内部的三个子项目。最主要的是my-project
在构建过程中使用my-maven-plugin
,所以必须先构建插件。
我想这样做,是简单地运行:
root-project $ mvn package
这应该建立my-maven-plugin
第一和my-project
构建过程中使用它。
不幸的是,这是行不通的。 Maven的过程中停止工作“扫描项目......”阶段,并显示错误消息:
Unresolveable build extension: Plugin test:my-maven-plugin:1.0 or one of its dependencies could not be resolved: Could not find artifact test:my-maven-plugin:jar:1.0
它的工作原理,如果我做的第一
$ cd my-maven-plugin
$ mvn install
$ cd ..
$ mvn package
它看起来并不好。然而,真正的问题是该插件取决于my-library
(这是根的另一个子模块)。所以,在构建插件之前,我必须输入库目录并安装它。随着我添加到插件中的每个“内部”依赖性,事情变得越来越糟。结果在本地存储库中很麻烦,并且需要很多手动步骤来重建项目。
有没有什么办法可以说Maven应该首先构建插件(用deps),并在以后在项目构建过程中使用它?
刚看了一下项目,我有这个问题和......宾果,这正是我最终决定解决问题的方式:)我希望更多的自动解决方案,但缺乏其他答案证明这是最好的方法 - 所以我接受你的回答:) – 2013-03-27 20:13:59