Maven子项目构建失败

时间:2015-08-01 06:21:15

标签: java maven

数据层pom文件:

<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.ehr</groupId>
      <artifactId>parentEHR</artifactId>
      <version>0.0.1-SNAPSHOT</version>
   </parent>

   <artifactId>Data-Layer</artifactId>
   <packaging>jar</packaging>
</project>

核心层pom文件

<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.ehr</groupid>
      <artifactId>parentEHR</artifactId>
      <version>0.0.1-SNAPSHOT</version>
   </parent>

   <artifactId>Core-Layer</artifactId>
   <packaging>jar</packaging>

   <dependencies>
      <dependency>
         <groupId>com.ehr</groupId>
         <artifactId>Data-Layer</artifactId>
         <version>0.0.1-SNAPSHOT</version>
      </dependency>
   </dependencies>

</project>

错误:

  

无法在项目上执行目标Core-Layer:无法解析项目com.ehr的依赖项:Core-Layer:jar:0.0.1-SNAPSHOT:无法在com.ehr收集依赖项:Data-Layer:jar: 0.0.1-SNAPSHOT:无法读取com.ehr的工件描述符:数据层:jar:0.0.1-SNAPSHOT:找不到工件com.ehr:parentEHR:pom:0.0.1-SNAPSHOT - &gt; [帮助1]

发生上述错误。

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

您需要确保在父级中定义模块(子级)以及在其自己的pom中定义其父级的模块。

在父母pom中:

<modules>
   <module>Core-Layer</module>
   <module>Data-Layer</module>
</modules>

然后从父文件夹中开始构建,该文件夹将按顺序构建模块(从上到下)。

答案 1 :(得分:0)

如果您的依赖项目已成功构建,那么maven应该在构建当前项目时(在您的情况下为'Core-Layer')在本地存储库中找到该工件。

  1. 确保使用命令'mvn install'构建数据层项目。此命令使用工件更新本地存储库。
  2. 如果maven构建成功,请验证本地存储库中的工件。(通常为$ {current_user} .m2 \ repositories \ com \ ehr)。
  3. 如果数据层的工件在那里可用,那么每当你使用该工件id引用它时,maven就会从那里读取它。

答案 2 :(得分:0)

假设parentEHR是您的父项目和Core-LayerData-Layer是同一项目的子项目。每个pom.xml应该如下所示:

parentEHR - 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>
    <groupId>com.ehr</groupId>
    <artifactId>parentEHR</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <modules>
        <module>../Data-Layer</module>
        <module>../Core-Layer</module>
    </modules>
</project>

核心层 - 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>
    <groupId>com.ehr</groupId>
    <artifactId>Core-Layer</artifactId>
    <packaging>jar</packaging>
    <parent>
        <groupId>com.ehr</groupId>
        <artifactId>parentEHR</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../parentEHR</relativePath>
    </parent>
</project>

数据层 - 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>
    <groupId>com.ehr</groupId>
    <artifactId>Data-Layer</artifactId>
    <packaging>jar</packaging>
    <parent>
        <groupId>com.ehr</groupId>
        <artifactId>parentEHR</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../parentEHR</relativePath>
    </parent>
</project>