maven中总是生成lastUpdate文件的原因

摘要:
报红不要紧,最关键的是,我去dependency在本地仓库的位置看了一下,发现lastUpdate文件又出现了。这说明,即使你删除了lastUpdate文件,maven还是会尝试去网上下载dependency的jar和pom,每次都要去网上下,每次都不成功,不成功就生成lastUpdate文件。有效地解决了找不到dependency的问题。

提纲

1、生成lastUpdate意味着什么

2、应该如何处理lastUpdate

1、生成lastUpdate意味着什么

========================

从idea的maven tool window中看到有的module的dependency是红的,说明idea中的maven插件找不到这个dependency。这时候,去到这个dependency在本地仓库的位置,看到dependency的jar和pom都在,同时,会发现有以lastUpdate结尾的文件。

有这个文件,表示maven去远程仓库为dependency下载jar和pom了,但是,没有下载下来,可能是由于网络不好,也可能是远程仓库没有这个dependency。

总之,虽然本地仓库有dependency的jar和pom,可是maven却不来本地直接去,偏偏要去远程下载,下载还不成功。

2、应该如何处理lastUpdate

==========================

网上有很多人遇到了lastUpdate文件,一般的建议是删除它。然后重新reimport项目,dependency就会不报红。

可是,我遇到的情况是,我删除了lastUpdate了,也reimport了,dependency还是报红。报红不要紧,最关键的是,我去dependency在本地仓库的位置看了一下,发现lastUpdate文件又出现了。

这说明,即使你删除了lastUpdate文件,maven还是会尝试去网上下载dependency的jar和pom,每次都要去网上下,每次都不成功,不成功就生成lastUpdate文件。删除了,还是会重复这个操作。

所以,关键不是你删除不删除lastUpdate,关键是要搞清楚为啥maven在本地明明有dependency的jar和pom的情况下,还要去网上下载而不是直接使用本地的dependency呢?按照常理,这是违背maven解析dependency的原则的,maven一般是先从本地仓库找dependency,如果找不到才去网上的远程仓库下载呀?为什么会相反呢?

这个问题答案一时也没搞清楚。

但是,对这种不去本地找的问题,我发现有一种有效的解决办法,那就是在对应module的pom中下如下repository:

<repositories>
        <repository>
            <id>oss</id>
            <url>file:D:apache-maven-3.6.3localRepo</url>
        </repository>
</repositories>

file后面的是本地仓库的绝对路径。这样写上以后,报红的dependency一般就不红了。有效地解决了找不到dependency的问题。

但是,这样虽然解决了自己本地dependency报红的错误,却没有从根本上分析清楚这个问题导致的原因,当然也无法根本解决,最不好的是,这样的repo写到pom中,代码提交的时候,一定要把这个repo给注释掉,否则别人pull这份代码,看到pom中有这个的repo,他就会很困惑的,搞不清楚这是啥路径。

这个问题还有待进一步搞明白。

免责声明:文章转载自《maven中总是生成lastUpdate文件的原因》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇用cordic 算法产生正/余弦波形在W10系统中配置Java环境变量后,cmd命令提示符找不到java下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

github学习之旅(五)—— 本地仓库与远程仓库进行关联

一、说明 上一篇介绍了,如何在本地进行版本的跟踪记录,Git是分布式的,也就是在多台电脑上可以协同操作,实现这个功能,就需要远程仓库了,也就是github这个平台。流程图,如下: 二、在github创建一个仓库 我们本地是有一个demo仓库的,并且已经有了2个文件和2个版本,现在在github创建一个同名的仓库。 进入github个人主页,点击右上角加号...

Android内核开发:理解和掌握repo工具【转】

本文转载自:http://ticktick.blog.51cto.com/823160/1653304 由于Android源码是用repo工具来管理的,因此,搞Android内核开发,首先要搞清楚repo是什么东西,它该怎么使用?作为《Android内核开发》系列文章的第二篇,我们首先谈谈对repo工具的理解和使用。 1. repo是什么? repo是一种...

用GitHub Pages搭建博客(三)

本篇介绍通过git工具替换网站主题,并发布 Jekyll和Hexo的简要介绍   GitHub Pages是基于Jekyll构建的,Jekyll 是一个简单的博客形态的静态站点生产工具,它有一个模版目录,其中包含原始文本格式的文档,通过一个转换器(如 Markdown)和Liquid 渲染器,将我们的的原始文章(Markdown格式文件)转化成静态页面,...

RedHat yum安装配置

以前用fedora配置yum很方便,可是来到RHLE就不是那么顺手了,如果不做如下设置,经常出现不能通过yum安装软件的情况,下面是详细配置(网上找的) 首先,rhel5系统安装的时候其实已经有yum了,只是因为如果用官方的网站更新的话除非你是用钱买的rhel5.否则它会提示注册之类的。所以只要把 yum的更新地址改成开源的就行了。而限定yum更新地址的...

git config配置

在git中,我们使用git config 命令用来配置git的配置文件,git配置级别主要有以下3类: 1、仓库级别 local 【优先级最高】 2、用户级别 global【优先级次之】 3、系统级别 system【优先级最低】 通常: git 仓库级别对应的配置文件是当前仓库下的.git/config 【在当前目录下.git目录默认是隐藏的,所以在文件管...

Maven部署构件至远程仓库

私服的一大作用就是部署第三方构件,包括组织内的生成的构件以及一些无法从外部仓库获取的构件。无论是日常开发中生成的构件,还是正式版本发布的构件,都需要部署到仓库中,供其它团队成员使用。Maven除了能对项目进行编译、测试、打包之外,还能将项目生成的构件部署到仓库中。我们可以在pom.xml中配置构件的部署地址。 distributionManagement...