tycho,是eclipse的一个孵化项目,是对maven的扩展,用于对eclipse 插件项目进行管理和构建。

    关于tycho的解释和作用可以参考链接: http://blog.csdn.net/qinjienj/article/details/7908919而且,相信能够用到tycho的GGMM们,应该还是能看得懂http://www.vogella.com/tutorials/EclipseTycho/article.html 中关于tycho的基本使用的。而且,在联网环境下,通过实例,相信学会使用tycho虽然可能有难度,但是应该可以学会,所以本文不赘述。 

    本文要讲到的问题是,在离线环境下,如何使用tycho。基本上,离线使用,首先肯定还是准备必要的环境了。

  • 首先,需要在联网环境下配置一个maven仓库,并成功运行一个tycho管理的eclipse项目。对于在离线环境下需要使用到的打包方式,依赖等内容,在联网环境下先配置一次并运行成功。保证仓库中有tycho运行时需要用到的所有内容。

  • 将联网环境下的仓库导入到离线环境。仓库中可用的内容主要是tycho相关的内容,其他内容其实可以不用导入,因为其他内容也可能非常大。(仓库中org和de开头两个文件夹)

  • 还需要导入的内容是eclipse运行平台环境的p2仓库包。可以在链接http://download.eclipse.org/eclipse/downloads/drops4/R-4.4.2-201502041700/ 中下载当前最新的平台仓库。如下图红框所示:

    wKiom1UObg6Se_qfAAXEIqyR5ro930.jpg

  • 在离线环境下,需要生成eclipse RCP项目的p2仓库。可以使用手工的方式先导出一次RCP程序,在导出时选择生成p2仓库。或者可以创建一个updatesite,build All生成更新仓库。

  • 在tycho的父pom.xml中配置仓库位置。在联网环境下tycho的仓库地址配置一般如下:

 <repositories>
   <repository>
     <id>luna</id>
     <layout>p2</layout>
     <url>http://download.eclipse.org/releases/luna</url>
   </repository>
  </repositories>
  • 在离线环境下,仓库的配置需要修改为:

<repositories>
   <repository>
     <id>luna</id>
     <layout>p2</layout>
     <url>file:///D:/p2Rep/XXX</url>
   </repository>
    <repository>
     <id>platform</id>
     <layout>p2</layout>
     <url>file:///D:/p2Rep/</url>
   </repository>
  </repositories>

    以上配置中,D:/p2Rep/XXX和D:/p2Rep/YYY用实际的RCP程序p2仓库和导入的平台仓库位置替代即可。需要注意,url的写法中,如果仓库是本地,file:///后面是三个“/”。如果访问的内部远程机器上的共享仓库,file://后面是两个"/"

    还需要注意的一个问题是,eclipse官网提供的语言包不是以仓库的形式提供,没有p2仓库的配置文件(artifact.xml和content.xml中没有语言包的配置信息)。所以,在导出RCP时如果要生成P2仓库,包含语言包则导出就会出错。通过updatesite的方式生成的仓库则可以包含语言包。