动手解决Maven在offline模式中无法使用的BUG
本文主要解决以下问题:
1. 使用到tycho,且tycho的版本低于0.25.0
Tycho大大简化了Eclipse、OSGi插件中的pom.xml,它实际上是一系列专用于build Eclipse插件和OSGi模块的maven插件的集合。
2.需要offline模式,但是又不想要建私服
3.在offline模式下,出错主要信息是:Repository system is offline and no local cache available for...
Ray根本原因
这是tycho的一个BUG,在0.25.0版本已经修复,所以本文只适合0.25.0版本以下
tycho的wiki信息:
https://wiki.eclipse.org/Tycho/Release_Notes/0.25
查看该版本的bug fixes,就是下面这个 474885 的ID
修复该bug的git网址是:
http://git.eclipse.org/c/tycho/org.eclipse.tycho.git/commit/?id=0e5f1f6d39f1acc50e904c8acac9f1f2cded4b53
修复该bug的commit点是:
0e5f1f6d39f1acc50e904c8acac9f1f2cded4b53
comments信息:
Ray下面来一步步解决该问题
1、下载tycho的源码(如果https无法访问,尝试改为http)
git clone https://git.eclipse.org/r/tycho/org.eclipse.tycho
2、切换到目标工程中使用tycho版本的tag点,例如这里使用的版本是0.20.0:
git check tycho-0.20.0
3、根据commit点( 0e5f1f6d39f1acc50e904c8acac9f1f2cded4b53)的diff信息 同步到当前的tag点(0.20.0)中
注意不要完成复制,因为修改的java文件(RemoteRepositoryCacheManager.java)中,
当前tag点(0.20.0)中有些 import信息 跟commit点(0e5f1f6d)是不同的。例如:
commit点(0e5f1f6d)用到的是
而tag点(0.20.0)用到的是
这种情况,就不需要改为commit(0e5f1f6d)中的一样,反正视情况而定。
4、 然后在可以联网的机器上使用命令
mvn clean install -Dmaven.test.skip=true
不需要测试用例,使用-Dmaven.test.skip=true
此次mvn命令中Maven最好使用新的repository,因为是一个临时的,最终只需要其中的一部分文件
5、可以发现是编译不通过的,原来是修改的java文件(RemoteRepositoryCacheManager.java)中重写了一个方法(createCacheFromFile)
该方法在当前tag(0.20.0)中的父类中是没有的。文件就是这个import信息中提到的。
现在需要更新该父类所在的文件(org.eclipse.equinox.p2.repository.jar)。
6、java文件(CacheManager)属于rt.equinox.p2项目,使用git下载
git clone http://git.eclipse.org/gitroot/equinox/rt.equinox.p2.git
7、查看java文件(CacheManager)的log信息
bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/internal/p2/repository/CacheManager.java
可以发现方法(createCacheFromFile)是2015-04-28增加的。然后切换到这个日期之后的一个tag点,例如( R4_5)
8、然后使用mvn clean install ,生成新的org.eclipse.equinox.p2.repository.jar文件。然后回到第4点继续
9、另外一种简便的方法解决org.eclipse.equinox.p2.repository.jar文件
下载4.5版本eclipse,
可以下载platform版本(http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops4/R-4.5-201506032000/eclipse-platform-4.5-win32.zip)
然后将plugins目录中的文件(org.eclipse.equinox.p2.repository_2.3.100.v20150428-1613.jar)复制
找到第4点中mvn中使用到的repository,进入以下目录
repository\p2\osgi\bundle\org.eclipse.equinox.p2.repository
查看该文件中的文件夹,当前tag(0.20.0)使用的是2.3.0.v20130412-2032
进入该文件夹,删除已存在的jar文件,粘贴刚才复制的jar文件,改名跟刚才删除的jar文件一致
这样回到第4点继续
10,回到第4点,继续,能往下走了。
11、最终文件生成的位置
repository\org\eclipse\tycho\org.eclipse.tycho.p2.resolver.impl\0.20.0
如果包含多个文件,关键文件只有3个
_maven.repositories
org.eclipse.tycho.p2.resolver.impl-0.20.0.jar
org.eclipse.tycho.p2.resolver.impl-0.20.0.jar.sha1
_maven.repositories:
文件夹文件列表信息,如果只用下面两个文件,打开该文件将多余的信息删除,如果需要使用0.20.0文件夹中所有文件,该文件不需要修改
12、将第11 点中提示的文件夹拷贝到 目标工程的离线仓库的同样位置。
13、将第8或者第9中的修改同样修改到目标工程的离线仓库中,离线仓库中使用的版本是什么,org.eclipse.equinox.p2.repository.jar文件就修改带什么文件夹中
最后,
能升级tycho版本的最好升级版本,0.25.0版本已修复该问题
能升级tycho版本的最好升级版本,0.25.0版本已修复该问题
能升级tycho版本的最好升级版本,0.25.0版本已修复该问题
动手解决Maven在offline模式中无法使用的BUG相关推荐
- 【ipad+向日葵远程控制】解决ipad上在向日葵中无法使用上下左右键、Tab键(解决方法是:在ipad上安装旧版本向日葵11.2.2,配合使用的是罗技K380键盘)
目录 参考链接 需要用到的3个工具(都是在Windows电脑上操作的) 开始配置 1. iTunes登录自己的账号 2. 安装旧版本 2.1 iTunes中打开向日葵APP的页面,然后把 iTunes ...
- ijkplayer点播和直播视频 问题 解决及优化,视频播放中可能有的bug
弱网丢帧策略:丢弃原始队列未编码的数据帧,丢弃编码队列的数据帧. 视频移动端播放内核技术:视频加载时长,秒播的体验.流畅度和清晰度都是用户最根本的诉求和最基础的产品体验.播放器的主要工作原理类似于编码 ...
- Android上传文件到服务器500,使用WebUploader解决安卓微信浏览器上传图片中遇到的bug...
摘自个人博客:走啊走的记录,欢迎点击查看,效果更佳! 微信浏览器上传图片bug的原因 微信在新版本中采用的是自己的X5内核浏览器,而在较老的版本中还有可能是安卓的原生浏览器.具体的环境我也不太了解,但 ...
- 使用WebUploader解决安卓微信浏览器上传图片中遇到的bug
微信浏览器上传图片bug的原因 微信在新版本中采用的是自己的X5内核浏览器,而在较老的版本中还有可能是安卓的原生浏览器.具体的环境我也不太了解,但是经过实际多台安卓机型的测试,我采取的方案可以基本确保 ...
- IDEA中解决 maven 包冲突
IDEA中解决 maven 包冲突 idea 中解决maven 包冲突的问题(maven helper)
- 小米4支持html5,针对在webview模式中,小米魅族手机不支持html5原生video的control的解决办法![原创]...
其实,解决办法就是,重新写个control控制功能,.同样用流行的video.js可以实现 第一步就是增加个播放的图片..要不然没有按钮多难看! webkit-playsinline> 上面的视 ...
- workbook需要引入的包_解决Maven引用POI的依赖,XSSFWorkbook依旧无法使用的问题
Java项目,导入Excel数据功能,第一次使用POI,一开始就遇到了小麻烦! Maven项目引用POI的jar包 org.apache.poi poi 3.14 引入后XSSFWorkbook依旧无 ...
- VIM编辑器初学者用法指南——vim中无法使用冒号更改Ubuntu的输入法解决
VIM编辑器初学者用法指南 一.vim打开文件: 二.vim编辑文件: 三.退出编辑模式 四.保存文件并退出Vim编辑器 Vim编辑器是Unix系统最初的编辑器,内置有两种操作模式:普通模式和插入模式 ...
- 解决 maven 项目中加入了 lombok 库后依然报错的问题
解决 maven 项目中加入了 lombok 库后依然报错的问题 参考文章: (1)解决 maven 项目中加入了 lombok 库后依然报错的问题 (2)https://www.cnblogs.co ...
最新文章
- 【c语言】扶老奶奶过街
- 英伟达账号登录邮箱验证收不到_【硬核教学】解决登录230锁定
- linux中使用随机数
- mysql 不会联想字段_你有没有被MySQL的这个bug坑过?
- 原创:关于Zend Studio 11.0.2使用localhost无法打开问题,附解决步骤
- java mysql proxy_Amoeba是一个类似MySQL Proxy的分布式数据库中间代理层软件,是由陈思儒开发的一个开源的java项目...
- iOS6与iOS7屏幕适配技巧
- 【转】健康,运动,习惯
- FPGA深度学习加速(1) - Xilinx ug892-Vivado design flows overview (Vivado设计流程简述) - 阅读笔记
- html怎么画虚线空心圆,PS如何画虚线圆圈 photoshop快速画虚线圆圈方法教程
- vue element 输入框出现英文提示怎样解决
- Too many re-renders. React limits the number of renders to prevent an infinite loop
- 使用列表推导式生成一个[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50]的列表
- halcon与python混编_halcon与C#混编的入门贴
- Mac 命令行删除包含文件的文件夹
- C#串口通信数据不完整
- 数字孪生技术辅助山洪灾害预警与应急联动
- seafile 部署_seafile服务端的搭建
- Android 防止白屏与华为手机欢迎页面全屏时设置背景拉伸图片
- 【高效办公】手机和PC文件共享教程