文档章节

Maven 继承时 发生的奇怪版本相同时编译不通过

地瓜2013
 地瓜2013
发布于 2014/09/23 15:51
字数 1119
阅读 150
收藏 0

一共写了三个项目:

------Parent

------Hello

------HelloFriend

做法是 用Hello,HelloFriend的pom.xml都继承Parent的pom.xml

Parent--pom.xml

如下:

<project。。。

  <dependencies>
   <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.9</version>
    <scope>test</scope>
   </dependency>
   <dependency>
    <groupId>cn.itcast.maven</groupId>
    <artifactId>Hello</artifactId>
    <version>0.0.1-SNAPSHOT</version>               // **********************注意这里
   </dependency>
   <dependency>
    <groupId>cn.itcast.maven</groupId>
    <artifactId>HelloFriend</artifactId>
    <version>0.0.1-SNAPSHOT</version>
   </dependency>
 。。。

</project>

 

在Hello--pom.xml

中继承

<project 。。。

  <parent>  
       <groupId>cn.itcast.maven</groupId>
  <artifactId>Parent</artifactId>
   <version>0.0.1-SNAPSHOT</version>
        <relativePath>../Parent/pom.xml</relativePath>  
</parent>
<dependencies>
    <dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
  </dependency>
</dependencies>

</project>

 

没有问题

 

但是在HelloFriend---pom.xml

中报错了

<project 。。。

  <parent>  
       <groupId>cn.itcast.maven</groupId>
  <artifactId>Parent</artifactId>
   <version>0.0.1-SNAPSHOT</version>
        <relativePath>../Parent/pom.xml</relativePath>  
</parent>
<dependencies>
    <dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
  </dependency>
      <dependency>
   <groupId>cn.itcast.maven</groupId>
   <artifactId>Hello</artifactId>
  </dependency>
</dependencies>

</project>

报错内容是:

Description Resource Path Location Type
ArtifactDescriptorException: Failed to read artifact descriptor for cn.itcast.maven:Hello:jar:0.0.1-SNAPSHOT: UnresolvableModelException: Could not find artifact cn.itcast.maven:Parent:pom:0.0.1-SNAPSHOT pom.xml /HelloFriend line 1 Maven Dependency Problem
Missing artifact junit:junit:jar:4.9 pom.xml /HelloFriend line 1 Maven Dependency Problem
Missing artifact org.hamcrest:hamcrest-core:jar:1.1 pom.xml /HelloFriend line 1 Maven Dependency Problem

奇怪的是 错误行号为1!

我尝试过重新建立工程 ,换用MyEclipse都不行

于是我改了一下Parent--pom.xml的内容(注意的那个地方),把版本号改了一下 如0.0.1

就没事了,立即HelloFriend---pom.xml中提示找不到那个版本错误行也是对的,重新install一下Hello之后(编译时候也报错,但是却运行过去了);HelloFriend也能install了

 

有经验的朋友指导一下,这里为什么奇怪的就是指定的版本必须是不同于默认版本呢?我看视频的例子就是这样写的没有问题啊


 

 

 

---------------问题补充---------------

@独孤季落 :这是传智博客的视频内容,老师讲解时候也出了个类似的问题 ,不知道怎么搞得,下节课也没说如何解决的,就神奇的回避了。到底我还是不知道他怎么处理的,我对比了一下工程,跟源代码是形同的,问题依旧,有经验的朋友请想一下是不是跟环境有关(11个月前)

独孤季落独孤季落
发帖于 11个月前
3回/1816阅

标签: Maven Eclipse MyEclipse

0收藏(0)

按票数排序  显示最新答案  共有3个答案 (最后回答: 11个月前)

  • 0

  • 独孤季落独孤季落11个月前

    问题已经解决, 三个配置文件都没有问题!

    解决过程:重新在IDE中建立MAVEN工程,并使用统一的jdk版本, 问题不再出现(java文件pom文件没有一丝更改);

    感觉是jdk版本不一致捣的鬼

    评论(0)引用此答案| 举报

  • 0

  • vincent1988vincen...11个月前

    你这个依赖确实有问题,简单说,依赖关系错乱,你的parent依赖子pom  而子pom依赖parent。

    评论(0)引用此答案| 举报

  • 0

  • 独孤季落独孤季落11个月前

    引用来自“vincent1988”的答案

    你这个依赖确实有问题,简单说,依赖关系错乱,你的parent依赖子pom  而子pom依赖parent。

    这里的原意是parent定义后,供子pom依赖的,parent的pom贴的时候没注意,把<dependencies>前面的<dependencyManagement>省掉了 sorry,

    现在把三个文件都贴出来 :

    子pom1:

    <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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>

      <artifactId>Hello</artifactId>
       <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>

      <parent>  
           <groupId>cn.itcast.maven</groupId>
      <artifactId>Parent</artifactId>
       <version>0.0.1-SNAPSHOT</version>
            <relativePath>../Parent/pom.xml</relativePath>  
    </parent>
    <dependencies>
        <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
      </dependency>
    </dependencies>

    </project>

     

    子pom2:

     

    <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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <artifactId>HelloFriend</artifactId>

     <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
     <parent>
      <groupId>cn.itcast.maven</groupId>
      <artifactId>Parent</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <relativePath>../Parent/pom.xml</relativePath>
     </parent>
     <dependencies>
      <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
      </dependency>
      <dependency>
       <groupId>cn.itcast.maven</groupId>
       <artifactId>Hello</artifactId>
      </dependency>
     </dependencies>

    </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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>

     <groupId>cn.itcast.maven</groupId>
     <artifactId>Parent</artifactId>
     <version>0.0.1-SNAPSHOT</version>
     <packaging>pom</packaging>

     <name>Parent</name>
     <url>http://maven.apache.org</url>

     <dependencyManagement>
      <dependencies>
       <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.9</version>
        <scope>test</scope>
       </dependency>
       <dependency>
        <groupId>cn.itcast.maven</groupId>
        <artifactId>Hello</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <scope>compile</scope>
       </dependency>
      </dependencies>
     </dependencyManagement>
    </project>

     

    Myeclipse错误:


    ArtifactDescriptorException: Failed to read artifact descriptor for cn.itcast.maven:Hello:jar:0.0.1-SNAPSHOT: UnresolvableModelException: Could not find artifact cn.itcast.maven:Parent:pom:0.0.1-SNAPSHOT pom.xml /HelloFriend line 1 Maven Dependency Problem

    Missing artifact junit:junit:jar:4.9 pom.xml /HelloFriend line 1 Maven Dependency Problem

    Missing artifact org.hamcrest:hamcrest-core:jar:1.1 pom.xml /HelloFriend line 1 Maven Dependency Problem


    Project configuration is not up-to-date with pom.xml. Run project configuration update Hello  line 1 Maven Configuration Problem

    其他java中的错误省略


本文转载自:http://www.oschina.net/question/1187819_127473

上一篇: Maven 学习之旅
下一篇: 落脚的地方
地瓜2013
粉丝 2
博文 76
码字总数 8750
作品 0
大兴
程序员
私信 提问
Maven 继承时 发生的奇怪版本相同时编译不通过

一共写了三个项目: ------Parent ------Hello ------HelloFriend 做法是 用Hello,HelloFriend的pom.xml都继承Parent的pom.xml Parent--pom.xml 如下: junit junit 4.9 test cn.itcast.mav......

独孤季落
2013/09/29
21.7K
4
maven dependencies与dependencyManagement的区别

1、DepencyManagement应用场景 当我们的项目模块很多的时候,我们使用Maven管理项目非常方便,帮助我们管理构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管...

张欢19933
2018/11/06
0
0
Apache Maven --- [依赖机制]

依赖机制介绍 依赖管理是Maven众所周知的特性之一,也是Maven擅长的领域之一.管理单个项目的依赖并不是太困难,但是当你开始处理由数十个甚至上百个模块组成的多模块项目或者应用时,Maven将会很...

moonsnake777
2016/06/01
77
0
Maven pom.xml配置详解

POM的全称是“ProjectObjectModel(项目对象模型)”。 声明规范

流柯
2017/07/05
0
0
Eclipse下面Maven项目小心使用Project Clean

悲剧永远在不经意之间发生,最近想使用Maven来作为项目管理,结果一路磕磕碰碰,昨天还遇到极度郁闷的事情,在构建完项项目之后,我很开心的自动编译了一下项目,然后用MAVEN install 命令,...

邹建芳
2013/06/04
0
3

没有更多内容

加载失败,请刷新页面

加载更多

FPGA 设备 USB Platform Cable USB

lsusbFuture Technology Devices International, Ltd FT232H Single HS USB-UART/FIFO IC

MtrS
今天
4
0
lua web快速开发指南(6) - Cache、DB介绍

"数据库"与"缓存"的基本概念 数据库与缓存是服务端开发人员的必学知识点. 数据库 "数据库"是一种信息记录、存取的虚拟标记地点的集合统称. 比如现实生活中, 我们经常会用到文件柜、书桌等等数...

水果糖的小铺子
今天
5
0
Oracle分页查询语句的写法

Oracle分页查询语句的写法 Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,Oracle分页查询语句基本上可以按本文给出的格式来进行套用。   Oracle分...

康师傅
昨天
5
0
java并发图谱

1527
昨天
2
0
Mybatis之拦截器Interceptor

使用mybatis时用PageHelper进行分页,用到了PageInterceptor,借此了解下mybatis的interceptor。Mybatis的版本是3.4.6,MybatisHelper的版本是5.1.3。 1、PageInterceptor 先上一段代码,如下...

克虏伯
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部