gpt4 book ai didi

maven 插件作为模块

转载 作者:行者123 更新时间:2023-12-04 14:03:04 27 4
gpt4 key购买 nike

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

最佳答案

我建议在您的情况下使用配置文件。您可以考虑根项目的 pom.xml 中的两个配置文件:构建插件 build 项目 .模块聚合( 列表)将为 移动 到这些配置文件。例如。 构建插件 profile 将包含:

<modules>
<module>my-library</module>
<!-- + any other "internal" dependencies needed to build the plugin -->
<module>my-maven-plugin</module>
</modules>

同样, build 项目 profile 将包含构建我的项目所需的模块列表。然后,

mvn clean install -P build-plugin

mvn clean package -P build-project

将是您的命令分别调用 my-maven-plugin 和 my-project 的构建。这两个命令都将从根项目的目录中执行。如果您需要在大部分时间按顺序运行它们,一个简单的 shell 脚本就可以完成这项工作......

关于maven 插件作为模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15040606/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com