• 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等,这我也在网上看到过)。

  • 相关阅读:
    DWZ中刷新dialog的方案解决
    C#开源资源
    css 布局
    js 事件
    css 1-3
    get post
    jquery ..... deferred
    arguments -- 仅仅是百度面试问了一下,大致就这些。不深
    git push
    [转载] ie 8 兼容性, 最重要的一点是,xp 最高支持ie8
  • 原文地址:https://www.cnblogs.com/wang-ze/p/13753010.html
Copyright © 2020-2023  润新知