gpt4 book ai didi

java - Maven 多模块项目找不到兄弟模块

转载 作者:搜寻专家 更新时间:2023-10-30 21:03:43 26 4
gpt4 key购买 nike

我似乎无法让 Maven 在多模块项目中找到同级模块。

我已经在所有模块中运行了 mvn clean install

这是设置:

Product
+-- MagniCompCommon
+-- Model

Model 项目将 MagniCompCommon 作为依赖项。当我在 Model 中运行 mvn clean compile 时,我得到:

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Model 1.0
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for com.magnicomp:MagniCompCommon:jar:1.0 is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.585 s
[INFO] Finished at: 2015-10-14T10:09:04-07:00
[INFO] Final Memory: 5M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project Model: Could not resolve dependencies for project com.magnicomp:Model:jar:1.0: Failure to find com.magnicomp:MagniCompCommon:jar:1.0 in http://download.java.net/maven/2/ was cached in the local repository, resolution will not be reattempted until the update interval of Java.Net has elapsed or updates are forced -> [Help 1]

如您所见,Maven 正在尝试在 java.net 存储库中查找 MagniCompCommon(这是父 (Product) 中的第一个存储库条目) pom.xml).

这是产品 pom.xml:

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>

<groupId>com.magnicomp</groupId>
<artifactId>Product</artifactId>
<version>1.0</version>
<packaging>pom</packaging>


<modules>
<module>MagniCompCommon</module>
<module>Model</module>
<module>Common</module>
<module>Agent</module>
<module>Doc</module>
</modules>

... snip ...

<repositories>
<repository>
<id>Java.Net</id>
<url>http://download.java.net/maven/2/</url>
</repository>

这是 MagniCompCommon pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.magnicomp</groupId>
<artifactId>Product</artifactId>
<version>1.0</version>
</parent>

<!-- <groupId>com.magnicomp.common</groupId> -->
<artifactId>MagniCompCommon</artifactId>
<packaging>jar</packaging>

这是模型pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.magnicomp</groupId>
<artifactId>Product</artifactId>
<version>1.0</version>
</parent>

<artifactId>Model</artifactId>
<packaging>jar</packaging>

<dependencies>
<dependency>
<groupId>com.magnicomp</groupId>
<artifactId>MagniCompCommon</artifactId>
<version>1.0</version>
</dependency>

</dependencies>

</project>

最佳答案

构建多模块 Maven 项目时,需要从根 POM 运行 Maven 命令。这意味着您需要运行 mvn clean installProductpom.xml .

您收到的错误是预料之中的:您只是在构建 Model .在 Model的 POM,Maven 看到依赖于 MagniCompCommon所以它试图寻找这种依赖性。首先,它会在您的本地存储库中搜索:由于您没有安装 MagniCompCommon,因此无法在那里找到它前。因此,它会在预定义的远程存储库中查找它(但也找不到)。

您可以通过先运行 mvn clean install 来规避此问题在 MagniCompCommon的 POM,然后在 Model 上POM,但这通过直接在根 POM 上调用 Maven 更容易完成。它会以正确的顺序正确构建每个模块(因为 Model 依赖于 MagniCompCommon ,它会先构建 MagniCompCommon然后 Model)。

作为旁注,您可以删除行 <packaging>jar</packaging>因为这是默认值。

关于java - Maven 多模块项目找不到兄弟模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33131880/

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