我的项目需要使用自定义 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),然后在我的项目构建期间使用它?