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

我似乎无法让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 repo中找到MagniCompCommon (这是父( Productpom.xml的第一个存储库条目)。

这是Product pom.xml

   4.0.0 com.magnicomp Product 1.0 pom  MagniCompCommon Model Common Agent Doc  ... snip ...   Java.Net http://download.java.net/maven/2/  

这是MagniCompCommon pom.xml

   4.0.0  com.magnicomp Product 1.0  <!-- com.magnicomp.common --> MagniCompCommon jar 

这是Model pom.xml

  4.0.0  com.magnicomp Product 1.0  Model jar   com.magnicomp MagniCompCommon 1.0    

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

您将获得错误:您只构建Model 。 在Model的POM中,Maven看到MagniCompCommon存在依赖关系,因此它试图寻找这种依赖关系。 首先,它在你的本地MagniCompCommon进行搜索:由于之前没有安装MagniCompCommon ,因此无法在那里找到它。 结果,它在预定义的远程存储库中查找它(并且也找不到它)。

您可以通过首先在MagniCompCommon的POM上运行mvn clean install然后在Model POM MagniCompCommon避免这种情况,但是通过直接在根POM上调用Maven可以更轻松地完成此操作。 它将以正确的顺序正确构建每个模块(因为Model依赖于MagniCompCommon ,它将首先构建MagniCompCommon然后构建Model )。

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

我注意到MagniCompCommon pom没有指定版本

  MagniCompCommon jar 

Product pom中,您引用的是1.0版本

  com.magnicomp MagniCompCommon 1.0  

您是否尝试在MagniCompCommon pom中指定版本1.0