当前位置: 首页 > 知识库问答 >
问题:

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

包兴思
2023-03-14

我似乎无法让Maven在多模块项目中找到兄弟姐妹的模块。

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

Product
+-- MagniCompCommon
+-- Model
[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]
<?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>

下面是MagnicCompCommonpom.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>

下面是Modelpom.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>

共有1个答案

宰父淳
2023-03-14

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

您得到的错误是意料之中的:您只是在构建模型。在model的POM中,Maven看到了对magnicompcommon的依赖关系,因此它会尝试寻找这种依赖关系。首先,它在本地repo中搜索:由于您以前没有安装magnicompcommon,所以无法在那里找到它。因此,它会在预定义的远程存储库中查找它(也没有找到)。

您可以先在MagnicompCommon的POM上运行MVN clean install,然后在modelPOM上运行MVN clean install,但是直接在根POM上调用Maven要容易得多。它将以正确的顺序正确构建每个模块(因为model依赖于magnicompcommon,所以它将首先构建magnicompcommon,然后构建model)。

另请注意,可以删除 jar 行,因为这是默认值。

 类似资料:
  • 请找到下面所有的3个POM。

  • 我曾广泛使用过Maven 目前有5个不同的maven项目,每个项目都有一个不同的pom.xml。到目前为止,它们之间存在依赖关系,如果需要,每一个都指向 中的另一个。 现在我们不喜欢的是 当我们发布子projectA时,我们需要手动修改所有将projectA作为依赖项的项目以使用新版本。Saw Maven有一个版本插件,不知道这会有什么帮助。 作为解决方案,我希望在POM之间有一个更干净的组织,并

  • 我有一个简单的Maven项目,看起来像这个项目视图 有一个主要的pom。xml如下所示: 有两个模块-核心和测试。核心模块pom.xml: 测试模块pom。xml 我想使用核心内部测试的代码。这种依赖性看起来是正确的。该项目已生成,没有错误: 但是,当我在测试中尝试从core导入一个类时,找不到该类。

  • 我有一个多模块maven应用程序,我们需要通过Jenkins构建。项目结构如下: 现在,mvn清洁安装-fa.xml工作正常。为此,我创建了一个詹金斯的工作。现在,和a.xml一样,我有另一个项目b.xml.b.xml有和a.xml相同的代码,除了不同的Ids。所以,我又为詹金斯创造了一份工作b.xml.两份工作都很好。但是,现在我想根据我们在Git中提交的项目,从单个Jenkins工作中构建这两

  • 问题内容: 我正在尝试建立一个多模块Maven项目,并且模块间的依存关系显然没有正确设置。 我有: 在父POM(其具有包装型POM),然后子目录和其限定具有相同名称的JAR POMS。 存储取决于Commons。 在主(主)目录中,我运行并看到: 为什么即使反应堆由于成功处理了其依赖关系树而明显看到了对“公共”的依赖关系,却还是失败了?它绝对不应该在网上找到,因为它就在那里… 存储的pom: 感谢

  • 关于maven项目结构,我有两个问题: 1)我正在创建一个maven多模块项目,并且想知道是否可以将模块的所有公共依赖项放在父POM中?这是正确的做法吗? 2)如果我正在创建一个包含所有web.xml和JSP文件的maven webapp项目,那么web控制器、侦听器和模型对象应该驻留在哪里?在一个单独的maven jar项目中还是在同一个webapp项目中?