欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

解决maven无法下载依赖的jar包的问题

程序员文章站 2022-04-28 10:52:26
背景: 公司内部有搭建maven私服,自己做了个核心jar包,一开始是xxx-core.1.0.0.SNAPSHOT版本,是本地和项目环境都可以正常使用的。为支持上线,发布稳定版本,xxx-core.1.0.0.jar。 本地编译正常,启动正常,项目环境,gitlab提交后自动部署到Rancher时 ......

背景:

  公司内部有搭建maven私服,自己做了个核心jar包,一开始是xxx-core.1.0.0.snapshot版本,是本地和项目环境都可以正常使用的。为支持上线,发布稳定版本,xxx-core.1.0.0.jar。

本地编译正常,启动正常,项目环境,gitlab提交后自动部署到rancher时,发现始终下载不下来jar包。

pom.xml文件的repository配置:

<repositories>
        <repository>
            <id>xxxxx.releases</id>
            <name>releases</name>
            <url>https://nexus.xxxxxx.com/repository/maven-releases</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>xxxxxx.snapshots</id>
            <name>snapshot</name>
            <url>https://nexus.huilianyi.com/repository/maven-snapshots</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
</repositories>

 

编译时maven报错提示:

failed to execute goal on project service: could not resolve dependencies for project com.xxxxx:service:war:1.0-snapshot: failure to find com.xxxxx-core:jar:1.0.0 in https://nexus.xxxx.com/repository/maven-releases was cached in the local repository, resolution will not be reattempted until the update interval of xxx.releases has elapsed or updates are forced -> [help 1]

提示是说,是私库配置的repository的这个id:xxx.releases 有缓存更新间隔,没到这个更新时间,是从缓存里面获取jar的,所以新上传到仓库xxx-core.1.0.0.jar这个jar包是不在缓存里面的

所以没有拉取下来。

解决办法:

pom.xml更改为:

<repositories>
        <repository>
            <id>xxxxx.releases</id>
            <name>releases</name>
            <url>https://nexus.xxxxxx.com/repository/maven-releases</url>
            <releases>
                <enabled>true</enabled>
                <updatepolicy>always</updatepolicy>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>xxxxxx.snapshots</id>
            <name>snapshot</name>
            <url>https://nexus.huilianyi.com/repository/maven-snapshots</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
</repositories>                    
<updatepolicy>标签是更新策略,always是总是下载仓库中最新的依赖。
注意:拉下来后,要去掉此配置,不然每次都会去下载jar包,编译起来非常耗时。