关于java:study06关于maven仓库的问题-was-cached-in-the-local-repository

10次阅读

共计 1282 个字符,预计需要花费 4 分钟才能阅读完成。

对于新增依赖到公有仓库的问题

新增内部依赖到公有仓库,因为之前不太熟悉,认为和平时一样,间接在 pom 文件配置 <repositories> 就能够,首次上传出错,起初被告知须要将依赖放到公有仓库才能够,遂将依赖放入公有仓库,然而在从新运行代码时仍旧报错,如下

[ERROR] Failed to execute goal on project ime-common: Could not resolve dependencies for project com.ime:ime-common:jar:0.0.1-SNAPSHOT: The following artifacts could not be resolved: com.youzan.cloud:open-sdk-core:jar:1.0.7-RELEASE, com.youzan.cloud:open-sdk-gen:jar:1.0.22.80056202107020904-RELEASE: Failure to find com.youzan.cloud:open-sdk-core:jar:1.0.7-RELEASE in https://nexus.cnjiang.com/repository/maven-public/ was cached in the local repository, resolution will not be reattempted until the update interval of cnjiang-nexus has elapsed or updates are forced -> [Help 1]

起初发现,Maven 默认会应用本地缓存的库来编译工程,对于上次下载失败的库,maven 会在~/.m2/repository/<group>/<artifact>/<version>/ 目录下创立 xxx.lastUpdated 文件,一旦这个文件存在,那么在直到下一次 nexus 更新之前都不会更新这个依赖库。

解决办法

1. 删除 v~/.m2/repository/<group>/<artifact>/<version>/ 目录下的 *.lastUpdated 文件,而后再次运行 mvn compile 编译工程。,然而没有权限。

2. 批改~/.m2/settings.xml 或 /opt/maven/conf/settings.xml 文件,将其中的仓库增加 <updatePolicy>always</updatePolicy> 来强制每次都更新依赖库

<repositories>
        <repository>
                <id>central</id>
                <url>http://central</url>
                <releases>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                </releases>
                <snapshots>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                </snapshots>
        </repository>
</repositories>

用到了第二种办法,解决了问题

正文完
 0