gpt4 book ai didi

java - 如何生成依赖项目jar文件

转载 作者:行者123 更新时间:2023-11-30 02:04:26 28 4
gpt4 key购买 nike

我有两个 Maven Java 项目(假设项目 A 和项目 B)。我已将项目 B 作为项目 A 的依赖项,因为项目 A 需要项目 B 的某些服务。我确实喜欢如下 pom.xml< 中所示

<dependency>
<groupId>com.projectB</groupId>
<artifactId>api-projectB</artifactId>
<version>1.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>

一切看起来都不错,但是当我为项目 A 执行 maven install 时,我收到了以下警告

[WARNING] The POM for com.projectB:api-projectB:jar:1.1-SNAPSHOT is missing, no dependency information available

这会导致构建失败,并显示如下所示的消息

[ERROR] Failed to execute goal on project api-projectB: Could not resolve dependencies for project com.projectB:api-projectB:jar:1.1-SNAPSHOT: Could not find artifact com.projectB:api-projectB:jar:1.1-SNAPSHOT -> [Help 1]

如何在为项目 A 执行 maven install 时生成项目 B jar。我知道,如果我先为 项目 B 执行 maven install,然后为 项目 A 执行 maven install 一切都会工作正常。但我想要相反的方式,但我不知道该怎么做

谁能帮我解决这个问题

最佳答案

Maven 仅从两个地方解析依赖关系:

  1. 本地存储库(通常位于 ~/.m2/repository )或
  2. 远程存储库,无论是公司内部的还是外部的,例如 Maven Central .

(事实上,there are just these two types of repositories。)

[如果您使用 Eclipse,还有第三个选项,其中 M2Eclipse plugin如果激活了相应的项目属性,则可以在开发时解决工作区的依赖关系。]

因此,为了能够解决另一个项目中的依赖项,您必须对依赖项的项目至少执行一次以下操作:

  • mvn install (到本地存储库),如果需要,只需在本地计算机上
  • mvn deploy (到远程仓库),如果要与其他人共享

要一步对所有项目执行此操作,您可以创建一个 aggregator / multi-module项目如:

+- aggregator
+- pom.xml
+- A
| +- pom.xml
+- B
| +- pom.xml
+- C
| +- pom.xml
+- ...
| +- pom.xml
...

聚合器的 POM 包含:

  ...
<packaging>pom</packaging>

<modules>
<module>A</module>
<module>B</module>
<module>C</module>
<module>...</module>
</modules>
...

并执行mvn installmvn deploy关于这个聚合器项目。

如果您不喜欢额外的目录级别 aggregator项目介绍您可以在同一级别创建它并使用 <module>../A</module> ,等等,在其 POM 中。

而且,顺便说一句,<scope>compile是默认值,因此您不必显式声明它。请记住:Convention over configuration 。 ;)

关于java - 如何生成依赖项目jar文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51754463/

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