zoukankan      html  css  js  c++  java
  • Maven问题:Could not find metadata org.junit.jupiter:junit-jupiter-api/maven-metadata.xml

    遇到这么一个问题。有一个Maven项目,在互联网环境下,下载jar包后,构建是成功的,但将这些下载后的jar文件移到无互联网的局域网中构建,就会报这个错。

    如图:

    很明显,如果是互联网,或者局域网内有nexus私库的,那么遇到这个问题应该是将库文件删了重新构建。但如果是已经完全是使用本地库,还需要这个问题,那么可以用我发现的这个方法试一试:

    根据提示,我在本地库文件中将maven-metadata-aliyun.xml复制了一份出来,重命名为maven-metadata.xml,构建还是失败。

    偶然的,我执行了如下操作,使构建又能成功了。

    前提:在无互联网的局域网中。

    1、首先编辑Maven的settings,将mirror中的互联网镜像去掉,换上本地的。比如:

    <mirror>
        <id>central</id>
        <mirrorOf>*</mirrorOf>
        <name>central</name>
        <url>file://D:\java\localRepository</url>
    </mirror>

    另外有一个offline参数,我不知道有没有影响,尝试以下操作时我是设置为true的。

    2、在maven-metadata.xml同目录结构下有一个resolver-status.properties文件,删掉它,执行构建。当然这一次还是会失败,但是resolver-status.properties会被再次生成,查看以下内容,我的里面内容有这么一个文件的描述:maven-metadata-central.xml

    3、将原有的maven-metadata-aliyun.xml复制一份,重命名为resolver-status.properties中的文件名,比如我这里就是重命名为maven-metadata-central.xml。

    4、再次构建,问题已经解决。

    这里要注意的是,第一步里我有一个删除resolver-status.properties的操作,原因是有时候下载来源不是maven中心库或者阿里云库这么简单,可能Maven项目的依赖原本就来源于某公司的Nexus的私库,那么resolver-status.properties中有可能是自定义的私库地址。删掉了会重新建立resolver-status.properties,那么缺少的maven-metadata是哪一个,就一目了然了。

    遇到这个问题可能是我对Maven了解的不够深入,具体产生的原因其实我是没搞清楚的。说不定各位大神有更好的解决办法(比如禁止Maven每次构建下载metadata.xml等,这我也在网上看到过)。

  • 相关阅读:
    【杂谈】需要mark的一些东西
    【codeforces】940F题解
    【codeforces】【比赛题解】#940 CF Round #466 (Div. 2)
    【FCS NOI2018】福建省冬摸鱼笔记 day6【FJOI 2018】福建省选混分滚蛋记 day1
    【FCS NOI2018】福建省冬摸鱼笔记 day5
    【FCS NOI2018】福建省冬摸鱼笔记 day4
    【FCS NOI2018】福建省冬摸鱼笔记 day3
    【FCS NOI2018】福建省冬摸鱼笔记 day2
    【FCS NOI2018】福建省冬摸鱼笔记 day1
    【6】装饰器、闭包、偏函数、变量作用域问题
  • 原文地址:https://www.cnblogs.com/wang-ze/p/13753010.html
Copyright © 2011-2022 走看看