maven本地仓库中存在jar包,但编译不成功,显示jar包不存在

介绍一下背景,项目要迁移进坑人的离线的内网开发,将在同事那编译通过的代码和maven仓库拷进内网,打算编译通过之后再上传私服,结果配好maven之后,本地库中的部分jar包显示没有引入,如下面的波浪线

想到可能是idea提示的不正确,直接编译吧,结果编译失败,主要错误信息如下

[ERROR] Failed to execute goal on project zeus-common-redis: Could not resolve dependencies for project com.hsjry:zeus-common-redis:jar:1.0.0-SNAPSHOT: Cannot access hundsun-nexus (http://10.253.40.200:6060/nexus/content/groups/public) in offline mode and the artifact redis.clients:jedis:jar:2.9.0 has not been downloaded from it before. -> [Help 1]

查看本地仓库,是存在该jar包的

问题出在目录中的多余文件,它们主要包含下载未成功的文件(.lastUpdated),远程仓库的配置信息(_remote.repositories),每次在更新maven项目的时候,每一个jar包路径下的_remote.repositories文件都会同setting.xml中设置的仓库地址id进行判断,如果没有匹配,会自动更新该jar包的相关文件,如果未联网则会出现jar无法发现的错误,导致即使jar存在,maven项目也无法使用该jar的情况。同时由于未联网,当下载失败,会生成后缀为.lastUpdated的文件。如果使用公司的内网仓库,_remote.repositories文件变为_maven.repositories。

删除整个仓库的后缀为.repositories,.lastUpdated的文件,同时为保险,我也删除了校验文件(.sha1后缀),idea中删除整个项目(root项目)的依赖,重新引入之后,问题解决。

删除后缀为.lastUpdated的文件脚本

windows下:delLastUpdated.bat

@echo off
rem create by NettQun

rem 这里写你的仓库路径
set REPOSITORY_PATH=E:\java12\ProgRepository\zeusRepository
rem 正在搜索...
for /f "delims=" %%i in (‘dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"‘) do (
    echo %%i
    del /s /q "%%i"
)
rem 搜索完毕
pause

原文地址:https://www.cnblogs.com/zjfjava/p/10468639.html

时间: 2024-10-12 16:25:25

maven本地仓库中存在jar包,但编译不成功,显示jar包不存在的相关文章

Maven本地仓库中jar包更新的依据

对于某个jar包,Maven如何判断远程仓库的jar包比本地仓库中的相应jar包要新呢?当我重新部署到私服上以后,下次执行maven命令的时候会自动下载最新的jar包,那么maven怎么知道要更新呢? 对于这个问题,在网上也没找到十分确切的答案. 所以,我大胆猜测,可能是通过时间戳或者校验和之类的来判断jar包的新旧程度. 猜想1:时间戳 当部署的时候,记录一个当前时间戳,之后我们下载到本地仓库的jar的时间戳就是这个jar包最后一次更新的时间戳.此后,重新打包部署这个jar包,时间戳也随之改变

Maven——向Maven本地仓库中手动添加依赖包(ps:ojdbc.jar)

maven中央仓库中并非包含所有现有的依赖包和插件,部分依赖包和插件需要手动地进行添加(如ojdbc.jar) 一.添加JDK系统环境变量(maven是基于Java的,可参考:https://www.runoob.com/w3cnote/windows10-java-setup.html) 二.添加mvn命令到路径(同1理进行配置) 三.进入cmd,输入mvn命令:mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc -

如何将本地的jar包村猝倒maven本地仓库中

首先需要将本地的jar包做mvn install到本地仓库中 mvn install:install-file -Dfile=D:\skyeye-ruleInfo\lib\lucene-queryparser-4.4.0.jar -DgroupId=org.apache.lucene -DartifactId=lucene-queryparser -Dversion=4.4.0 -Dpackaging=jar 这个过程 会借助 setting.xml中配置的本地路径 将这个jar包放到本地仓库中

本地jar包 安装到本地仓库中的命令

maven 项目 本地jar包 安装到本地仓库中去: 首先进入到该文件所在文件夹内 若不在直接绝对路径就可以.注意命令中的空格 mvn install:install-file  -Dfile=文件名称(如:md5.jar) -DgroupId=com.capinfo.crypt -DartifactId=md5 -Dversion=1.0 -Dpackaging=jar -DgeneratePom=true -DcreateChecksum=true

在eclipse的maven插件中搜寻本地仓库中的jar搜索不到的解决方案

在eclipse的maven插件中搜寻本地仓库中的jar搜索不到的解决方案 在eclipse的maven插件中搜索本地仓库中的jar搜索不到的解决方案 之前,用过maven管理项目的童鞋都知道本地会有一个${User_Home}.m2/repository仓库 是用来存放jar包的地方.但是,在eclipse中的maven仓库中 搜索不到本地仓库中的jar包. 原因是因为maven中的本地仓库的index索引没有更新,导致在eclipse的maven插件中搜索不到. 解决方案: 在eclipse

Maven - 实例-2-使用本地仓库中的依赖包

Maven引入构建包的流程 执行mvn compile命令编译源代码,如果编译过程中需要用到其他的包, maven将会在pom.xml文件中查找是否引入该依赖包的坐标. 示例: <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </depen

zbb20181007 maven 将任意jar安装到本地仓库中

maven 将任意jar安装到本地仓库中 假如你要把gavin-2.0.1.jar打包到本地仓库 1.执行以下命令: mvn install:install-file -Dfile=gavin-2.0.1.jar -DgroupId=com.gavin -DartifactId=gavin -Dversion=2.0.1 -Dpackaging=jar 2.将maven的坐标引入项目即可: <dependency>   <groupId>com.gavin</groupId&

Maven 本地仓库同步到私服中

步骤: 第一步:找到安装私服的目录中plexus.properties文件. 地址:C:\Windows\apache-tomcat-7.0.26\webapps\nexus-2.7.0-06\WEB-INF 第二步:修改properties文件 nexus-work=${nexus-work}/sonatype-work/nexus  修改成 nexus-work=D:/maven/sonatype-work/nexus 把${}换成本地的仓库目录. 第三步:把本地仓库中的jar包拷贝到私服c

记 Maven 本地仓库埋坑之依赖包为何不能用

记一次 Maven 本地仓库埋坑之 Verifying Availability 背景 某 Java 后端项目使用 maven 构建,因为某些原因,某些依赖库下载不了,直接找其它人索要了他电脑上的 maven 本地仓库里的依赖包. 然后直接拷贝到我电脑的本地 maven 仓库里,但构建项目时,发现,仍旧报找不到依赖包也下载不了的错误,导致项目构建不起来. 异常信息 以上是背景,下面是构建过程出现的一些异常: The Pom for xxx.jar is missing, no dependenc