zoukankan      html  css  js  c++  java
  • maven-build-downloading

    1. 场景描述

    maven库用的是公司私服和阿里云结合的方式(maven多仓库配置),本项目maven依赖的有其他项目组的jar包(单点登录),但是天有不测风云,依赖单点登录的好几个jar包,在编译(build)的时候一直Downloading,卡死了。

    2. 解决方案

    2.1 问题定位

    以前好好的,突然不行了,首先肯定先找jar包提供方,然而单点登录项目组回复N久没动了,看了maven库jar包是没变化,里面的日期也没变化,但是几个同事都不能更新了,肯定是私服上的jar包有变化了,看了下私服上md5、sha1这些好像变化了。。但是也不确定,也不好说,还是看看怎么解决吧。

    2.2 解决方案

    问题原因是服务器配置文件跟本地文件进行对比(maven-metadata.xml),通过里面的时间戳进行对比,本地日期大于等于服务器jar包日期,不更新jar包;服务器日期大于本地库日期,更新jar包,问题就出在maven-metadata这个问题文件上了。

    两个解决方案

    2.2.1 更改setting文件。

    本人maven配置文件在:E:m2下,打开文件,找到jar包对应的仓库。

    <updatePolicy>always</updatePolicy>
    
    -----------------更改为----------
    <updatePolicy>never</updatePolicy>
    

    updatePolicy有三个参数:aways:每次,never:从不,daily:每日,这样就可以编译成功了。

    2.2.2 重新下载

    当Downloading卡住了,首先停止服务,去本地maven仓库(本人:E:m2 epository)下面找到该jar包对应文件夹,在文件夹里面会有个lock后缀的文件,就是在比对过程中出问题了,文件锁住了,删除了该lock文件,但是测试了下不行,下载还是会有问题,要删除了整个文件夹,例如“E:m2 epositorycomoracleojdbc611.2.0.3,把文件夹11.2.0.3整个给删除了,重新编译下载,因为整个文件夹都没有了,maven编译的时候就会去下载该jar包,相当于新的下载,不会去比对,这样就可以直接通过了。

    2.2.3 结论

    建议采用第二种,原因:

    (1)直接,快速,直接把jar包对应的文件夹删除了,重新下载就好了。

    (2)第一种方案会存在问题,假如外围系统jar包正常更新了,版本没变化,但是增加了新的方法,这样就更新不到新的方法了,会有问题。


    I’m 「软件老王」,如果觉得还可以的话,关注下呗,后续更新秒知!欢迎讨论区、同名公众号留言交流!

  • 相关阅读:
    【转】点集 凸包
    【转】Word中使用Endnote很卡解决方案
    【转】一个程序员的面试经验之谈
    【转】 std list/vector sort 排序
    std::numeric_limits<int>::max() error C2589: '(' : illegal token on right side of '::' 解决办法
    【转】Log4cpp 封装
    【转】 log4cpp 的使用
    遍历目录 删除目录中包含指定字符的文件和文件夹
    mysql主从复制架构
    mysql分区功能详细介绍,以及实例
  • 原文地址:https://www.cnblogs.com/ruanjianlaowang/p/11284128.html
Copyright © 2011-2022 走看看