问题描述:
在使用Maven构建项目时有个sdk是放在项目中的resource的,那么就需要将这个sdk加载到本地的maven仓库。
于是在项目文件下使用CMD进行加载:
D:\workSpace\project\yuzhi-data-manager-api-v2>mvn install:install-file -Dfile="yuzhi-datamanger/src/main/resources/lib/k3cloud-webapi-sdk-java1.8-v8.2.0.jar" -DgroupId=k3cloud -DartifactId=webapi -Dversion=sdk-java1.8-v8.2.0 -Dpackaging=jar
并且[INFO] BUILD SUCCESS。
然后>mvn clean install -DskipTests:
同样[INFO] BUILD SUCCESS。
此时在IDEA中构建项目,却仍然提示:
k3cloud:webapi:jar:sdk-java1.8-v8.2.0 was not found in https://maven.aliyun.com/repository/public during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of public has elapsed or updates are forced Try to run Maven import with -U flag (force update snapshots)
后发现问题原因。
根本原因:
IDEA自带了个MAVEN,而自己在命令行里使用的MAVEN和这个不是一个且不共享仓库。
命令行里使用的是:
C:\Program Files\apache-maven-3.9.9
本地仓库:C:\Program Files\apache-maven-3.9.9\mvn_repo
而 IDEA 里 Settings → Build Tools → Maven 打开一看:
- Maven home path:Bundled (Maven 3.9.5)(IDEA 自带的 Maven)
- Local repository:C:\Users<用户名>.m2\repository
这就对上了:
IDEA 用的是自己的 Maven + 自己的本地仓库,并没有看到我在命令行那套 Maven 里安装的 jar,自然报“找不到依赖”。
解决:
在 IDEA 的 Maven 设置里,把配置改成和命令行一致:
Maven home path改成C:\Program Files\apache-maven-3.9.9(即系统 Maven 安装目录)。Local repository勾选Override,改成C:\Program Files\apache-maven-3.9.9\mvn_repo(即 jar 安装进去的仓库目录)。- 点 OK 保存。
- 回到右边 Maven 面板,勾选“Force update of snapshots/releases”,点击“刷新”(Reimport All Maven Projects)。
刷新完成后,IDEA 成功识别到了本地安装的 K3Cloud SDK,依赖问题解决。