Maven下载错版本
Maven downloads the wrong version
我在 pom.xml 中指定依赖版本 75.1.3 指向我的其他项目之一:
<properties>
<myotherproject.version>75.1.3</myotherproject.version>
</properties>
<dependencies>
<dependency>
<groupId>com.myotherproject</groupId>
<artifactId>MyOtherProject</artifactId>
<version>${myotherproject.version}</version>
</dependency>
<dependencies>
但是当我构建(全新安装)主项目时,maven 总是下载一些其他版本 75.1.1:
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] Downloading from maven-local: https://mycompany.com/maven-local/com/myotherproject/MyOtherProject/75.1.1/MyOtherProject-75.1.1.pom
[INFO] Downloaded from maven-local: https://mycompany.com/maven-local/com/myotherproject/MyOtherProject/75.1.1/MyOtherProject-75.1.1.pom (6.0 kB at 19 kB/s)
[INFO] Downloading from maven-local: https://mycompany.com/maven-local/com/myotherproject/MyOtherProject/75.1.1/MyOtherProject-75.1.1.jar
[INFO] Downloaded from maven-local: https://mycompany.com/maven-local/com/myotherproject/MyOtherProject/75.1.1/MyOtherProject-75.1.1.jar (329 kB at 918 kB/s)
我已经查找了 75.1.1 版本,但在项目中没有提到它。对另一个项目的依赖只在那个地方定义。当我从 .m2 文件夹中删除相应的文件夹 75.1.1 时,它会在每次构建时再次下载它。
当然,由于缺少符号(仅在 75.1.1 之后出现),构建失败。
我尝试在 pom.xml 中指定版本:75.1.2、75.1.3、75.1.4-SNAPSHOT,但它始终使用 75.1.1。
我也尝试过将 maven-compiler-plugin 版本强制为 3.10.1,但它并没有解决问题。
我不知道现在还能尝试什么...我正在使用 Eclipse IDE。
通常这些问题是由其他(有时是间接)依赖性引起的。
我建议你发出命令 dependency:tree
并根据旧的工件版本检查是谁。
终于找到原因了。
我的主项目 pom.xml 中的版本已更新,但其子项目 pom.xml 中的版本未更新。因此,子项目是基于旧快照构建的,引用了旧版本的依赖项(另一个项目)。
我当时的想法是:
Parent project 5.2.2 -----> Children projects 5.2.2 --x--> Other project 75.1.3
它实际上是什么:
Parent project 5.2.2 --x--> Children projects 5.1.3 -----> Other project 75.1.1
所以问题出在父项目和子项目之间,而不是maven依赖的问题。
我在 pom.xml 中指定依赖版本 75.1.3 指向我的其他项目之一:
<properties>
<myotherproject.version>75.1.3</myotherproject.version>
</properties>
<dependencies>
<dependency>
<groupId>com.myotherproject</groupId>
<artifactId>MyOtherProject</artifactId>
<version>${myotherproject.version}</version>
</dependency>
<dependencies>
但是当我构建(全新安装)主项目时,maven 总是下载一些其他版本 75.1.1:
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] Downloading from maven-local: https://mycompany.com/maven-local/com/myotherproject/MyOtherProject/75.1.1/MyOtherProject-75.1.1.pom
[INFO] Downloaded from maven-local: https://mycompany.com/maven-local/com/myotherproject/MyOtherProject/75.1.1/MyOtherProject-75.1.1.pom (6.0 kB at 19 kB/s)
[INFO] Downloading from maven-local: https://mycompany.com/maven-local/com/myotherproject/MyOtherProject/75.1.1/MyOtherProject-75.1.1.jar
[INFO] Downloaded from maven-local: https://mycompany.com/maven-local/com/myotherproject/MyOtherProject/75.1.1/MyOtherProject-75.1.1.jar (329 kB at 918 kB/s)
我已经查找了 75.1.1 版本,但在项目中没有提到它。对另一个项目的依赖只在那个地方定义。当我从 .m2 文件夹中删除相应的文件夹 75.1.1 时,它会在每次构建时再次下载它。 当然,由于缺少符号(仅在 75.1.1 之后出现),构建失败。
我尝试在 pom.xml 中指定版本:75.1.2、75.1.3、75.1.4-SNAPSHOT,但它始终使用 75.1.1。
我也尝试过将 maven-compiler-plugin 版本强制为 3.10.1,但它并没有解决问题。
我不知道现在还能尝试什么...我正在使用 Eclipse IDE。
通常这些问题是由其他(有时是间接)依赖性引起的。
我建议你发出命令 dependency:tree
并根据旧的工件版本检查是谁。
终于找到原因了。 我的主项目 pom.xml 中的版本已更新,但其子项目 pom.xml 中的版本未更新。因此,子项目是基于旧快照构建的,引用了旧版本的依赖项(另一个项目)。
我当时的想法是:
Parent project 5.2.2 -----> Children projects 5.2.2 --x--> Other project 75.1.3
它实际上是什么:
Parent project 5.2.2 --x--> Children projects 5.1.3 -----> Other project 75.1.1
所以问题出在父项目和子项目之间,而不是maven依赖的问题。