gpt4 book ai didi

java - Maven 停留在旧版本的系统依赖

转载 作者:搜寻专家 更新时间:2023-11-01 03:30:22 26 4
gpt4 key购买 nike

我的 Maven 项目依赖于一个非 Maven 库,它被编码为系统依赖:

<dependency>
<groupId>com.example</groupId>
<artifactId>foo</artifactId>
<version>${foo.version}</version>
<scope>system</scope>
<systemPath>${foo.jar}</systemPath>
</dependency>

可以通过本地属性控制库的位置:

<properties>
<foo.version>2.1.1</foo.version>
<foo.basedir>/usr/local</foo.basedir>
<foo.libdir>${foo.basedir}/lib</foo.libdir>
<foo.jar>${foo.basedir}/java/foo-${foo.version}.jar</foo.jar>
</properties>

最近库从2.1.1版本切换到2.2.0版本,所以我更改了foo.version属性,但是Maven好像卡在了老版本:

...
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to resolve artifact.

Missing:
----------
1) com.example:foo:jar:2.1.1
...

我已经运行了 mvn dependency:purge-local-repository(实际上是很多次)。字符串 2.1.1 没有出现在我的 POM、profiles.xmlsettings.xml 中的任何位置。尽管如此,每次我尝试构建我的项目时,Maven 都会因上述错误而失败。

这是怎么回事? Maven 在哪里存储依赖版本信息以及如何更新它?

最佳答案

我认为 ${foo.version} 可能会被解析为过滤器属性。您可以查看 src/main/filters 下的属性文件吗?

不确定这是否确实是问题所在,但请尝试一下并更新回来。

我能想到的另一个原因是 - 可能存在对 com.example:foo:jar:2.1.1 的传递依赖。那是一些其他依赖项,需要此工件的 2.1.1 版本。您可以通过执行 mvn dependency:tree

找到哪个工件正在传递这个

关于java - Maven 停留在旧版本的系统依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1852719/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com