本文主要解决以下问题:

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相关推荐

  1. 【ipad+向日葵远程控制】解决ipad上在向日葵中无法使用上下左右键、Tab键(解决方法是:在ipad上安装旧版本向日葵11.2.2,配合使用的是罗技K380键盘)

    目录 参考链接 需要用到的3个工具(都是在Windows电脑上操作的) 开始配置 1. iTunes登录自己的账号 2. 安装旧版本 2.1 iTunes中打开向日葵APP的页面,然后把 iTunes ...

  2. ijkplayer点播和直播视频 问题 解决及优化,视频播放中可能有的bug

    弱网丢帧策略:丢弃原始队列未编码的数据帧,丢弃编码队列的数据帧. 视频移动端播放内核技术:视频加载时长,秒播的体验.流畅度和清晰度都是用户最根本的诉求和最基础的产品体验.播放器的主要工作原理类似于编码 ...

  3. Android上传文件到服务器500,使用WebUploader解决安卓微信浏览器上传图片中遇到的bug...

    摘自个人博客:走啊走的记录,欢迎点击查看,效果更佳! 微信浏览器上传图片bug的原因 微信在新版本中采用的是自己的X5内核浏览器,而在较老的版本中还有可能是安卓的原生浏览器.具体的环境我也不太了解,但 ...

  4. 使用WebUploader解决安卓微信浏览器上传图片中遇到的bug

    微信浏览器上传图片bug的原因 微信在新版本中采用的是自己的X5内核浏览器,而在较老的版本中还有可能是安卓的原生浏览器.具体的环境我也不太了解,但是经过实际多台安卓机型的测试,我采取的方案可以基本确保 ...

  5. IDEA中解决 maven 包冲突

    IDEA中解决 maven 包冲突 idea 中解决maven 包冲突的问题(maven helper)

  6. 小米4支持html5,针对在webview模式中,小米魅族手机不支持html5原生video的control的解决办法![原创]...

    其实,解决办法就是,重新写个control控制功能,.同样用流行的video.js可以实现 第一步就是增加个播放的图片..要不然没有按钮多难看! webkit-playsinline> 上面的视 ...

  7. workbook需要引入的包_解决Maven引用POI的依赖,XSSFWorkbook依旧无法使用的问题

    Java项目,导入Excel数据功能,第一次使用POI,一开始就遇到了小麻烦! Maven项目引用POI的jar包 org.apache.poi poi 3.14 引入后XSSFWorkbook依旧无 ...

  8. VIM编辑器初学者用法指南——vim中无法使用冒号更改Ubuntu的输入法解决

    VIM编辑器初学者用法指南 一.vim打开文件: 二.vim编辑文件: 三.退出编辑模式 四.保存文件并退出Vim编辑器 Vim编辑器是Unix系统最初的编辑器,内置有两种操作模式:普通模式和插入模式 ...

  9. 解决 maven 项目中加入了 lombok 库后依然报错的问题

    解决 maven 项目中加入了 lombok 库后依然报错的问题 参考文章: (1)解决 maven 项目中加入了 lombok 库后依然报错的问题 (2)https://www.cnblogs.co ...

最新文章

  1. 【c语言】扶老奶奶过街
  2. 英伟达账号登录邮箱验证收不到_【硬核教学】解决登录230锁定
  3. linux中使用随机数
  4. mysql 不会联想字段_你有没有被MySQL的这个bug坑过?
  5. 原创:关于Zend Studio 11.0.2使用localhost无法打开问题,附解决步骤
  6. java mysql proxy_Amoeba是一个类似MySQL Proxy的分布式数据库中间代理层软件,是由陈思儒开发的一个开源的java项目...
  7. iOS6与iOS7屏幕适配技巧
  8. 【转】健康,运动,习惯
  9. FPGA深度学习加速(1) - Xilinx ug892-Vivado design flows overview (Vivado设计流程简述) - 阅读笔记
  10. html怎么画虚线空心圆,PS如何画虚线圆圈 photoshop快速画虚线圆圈方法教程
  11. vue element 输入框出现英文提示怎样解决
  12. Too many re-renders. React limits the number of renders to prevent an infinite loop
  13. 使用列表推导式生成一个[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50]的列表
  14. halcon与python混编_halcon与C#混编的入门贴
  15. Mac 命令行删除包含文件的文件夹
  16. C#串口通信数据不完整
  17. 数字孪生技术辅助山洪灾害预警与应急联动
  18. seafile 部署_seafile服务端的搭建
  19. Android 防止白屏与华为手机欢迎页面全屏时设置背景拉伸图片
  20. 【高效办公】手机和PC文件共享教程

热门文章

  1. 流形学习(Manifold Learning)
  2. js版的oschian分页类
  3. 解决elementui中Container自适应最上面有空白
  4. 【Android软件】ES文件浏览器:Android资源管理器
  5. python中使用input输入数据
  6. CSUST第六次周赛题解
  7. 转载 | 访问控制的定义及五大实现挑战
  8. 艺术字素材这几个网站不容错过!
  9. 全屋智能家居市场前景
  10. pc网站的一些自适应的方案