下载Eclipse插件更新站点以供离线安装

我想安装的插件提供了安装的更新站点。 但是,我想要将其安装到的Eclipse安装位于未连接到Internet的计算机上。 有没有办法让我访问该网站(HTTP,FTP等)下载文件进行脱机安装?

Eclipse提供了一种自动镜像这些站点的方法,无论是通过命令行还是通过ant任务。

基于p2信息镜像

$eclipse_home/eclipse -application org.eclipse.equinox.p2.artifact.repository.mirrorApplication -source $1 -destination $2 $eclipse_home/eclipse -application org.eclipse.equinox.p2.metadata.repository.mirrorApplication -source $1 -destination $2 

参考: Equinox p2存储库镜像

基于site.xml信息的镜像

 java -jar $eclipse_home/plugins/org.eclipse.equinox.launcher_*.jar -application org.eclipse.update.core.standaloneUpdate -command mirror -from $from -to $to 

参考: 从命令行运行更新pipe理器

您可以在我的脚本库中查看这些脚本的演变。

通过将更新站点上可用的必需JAR复制到Eclipse安装的插件和function目录,大多数Eclipse插件可以在没有Eclipse更新程序的情况下安装。

在某些情况下,需要使用-clean开关启动Eclipse。

下面是一个如何为m2eclipse插件做这个事情的例子:

  1. m2eclipse更新站点是http://m2eclipse.sonatype.org/update 。 确定所需的JAR列表是第一步。 这通常在site.xml文件中find; 在这种情况下,你可以在http://m2eclipse.sonatype.org/update/site.xmlfind它。;
  2. 将要下载的JAR的列表筛选为您打算使用的插件的版本。 这可以通过每个“function”的版本属性来确定。 如果幸运的话,您可以在类别节点中findJAR的描述。
  3. 请注意需要下载的每个JAR的url属性。 这将包括JAR可用的服务器上的子目录,以及Eclipse安装中需要放置它们的目录。

PS:这种方法有点ha,,但是它是基于网站地图的参考 。 但请参阅更新

更新

我还没有尝试过,但是您可以创build一个本地镜像站点,从其他人可以从中获取Eclipse插件。 在Galileo中,这可以通过使用mirror命令在独立模式下运行Eclipse更新程序来完成。

在经过一段时间的镜像之后,我意识到使用“wget”变得更容易(至less对我来说)。

简而言之:

  1. 下载网站:

    wget --recursive --no-parent http://url.of/updatesite

  2. 获取下载的更新站点的内容并将其移至离线环境

  3. 通过“本地…”button将您的离线更新站点目录添加到可用软件站点的列表中。

你可以在这里阅读更多的细节。

您可以使用Ant任务镜像p2网站:

 <target name="springide"> <echo>springide</echo> <p2.mirror verbose="true"> <repository location="${REPO_HOME}/springide" name="springide" append="true"/> <source> <repository location="http://springide.org/updatesite" /> </source> <iu id="Core / Spring IDE" version="" /> <iu id="Extensions / Spring IDE" version="" /> <iu id="Integrations / Spring IDE" version="" /> <iu id="Resources / Spring IDE" version="" /> </p2.mirror> </target> 

或findbugs:

 <target name="findbugs"> <echo>findbugs</echo> <p2.mirror verbose="true"> <repository location="${REPO_HOME}/findbugs" name="findbugs" append="true"/> <source> <repository location="http://findbugs.cs.umd.edu/eclipse/" /> </source> <iu id="edu.umd.cs.findbugs.plugin.eclipse.feature.group" version="" /> </p2.mirror> </target> 

为了这个工作,你必须在和eclipse相同的JVM中运行ant任务。

您可以通过打开“软件更新”findIU ID:并从那里复制。 在Eclipse 3.5中应该有一个更多…button,在3.4中你必须点击属性button。

我发现p2 mirrorApplication在某些网站上效果不好,镜像有重复的文件(pack200和jar版本)。 b3聚合器运行得更好,并且使定制我的更新站点变得更容易。 有关安装说明和详细信息,请参阅https://wiki.eclipse.org/Eclipse_b3/aggregator/manual上的手册。;

我使用的基本步骤是:

  • 文件>新build>其他…> b3>存储库聚合。
  • select“ 聚合”节点,并将“ 生成根”设置为您希望聚合回购去的文件夹。
  • 使用R单击“ 聚合”节点>“新build子项”>“configuration”添加您关心的平台。
  • 添加一个validation集 ,通常将其标签设置为主。
  • 如果您不需要从主eclipse存储库(即: http : //download.eclipse.org/releases/mars ) 获得任何额外的捆绑包,您可以将其添加到validation集作为validation存储库 ,但通常您需要将其添加为Contribution下的Mapped Repository ,从而可以下载依赖关系和/或额外的eclipsefunction。
  • 对于每个插件,添加一个带有标签贡献 ,并在该至less一个带有位置的 映射存储库下添加一个贡献
  • 如果需要,可以将自定义类别节点添加到聚合中 ; 给他们每一个独特的描述标识符标签
  • 展开底部的Repository Browser节点,展开repo url>展开Installable Units >查看Categories (如果存在)和/或Features下的function
  • 用鼠标右键单击所需要的function,然后单击添加到自定义类别(如果使用这些function的话),否则将添加到父映射存储库中作为>映射function。
  • R-单击任何节点>构build聚合。

重要说明:如果您没有映射给定存储库中的任何function,整个存储库都将被镜像(我认为所有软件包的最新版本,而不是实际上存储库中的所有内容)。

幸运的是,我们不必担心“排除规则”或“有效configuration规则”,这似乎会让事情变得更加复杂。 但是,如果存储库包含具有依赖冲突的捆绑包,则排除规则可能是必需的,在这种情况下,需要排除一个或多个冲突捆绑包。

虽然b3聚合器通常只下载已映射的每个function的最新版本(以及它的依赖关系),但是如果随着新版本的发布而反复使用构build聚合 ,过时的版本将会累积在您的聚合中。 你可以使用Clean然后Build Aggregation,但这意味着你将不得不重新下载一切。 相反,只需添加另一个.b3aggr聚合文件,设置Build Root,添加configuration,然后使用本地镜像final目录的path添加一个带Mapped Repository的Contribution。 不要映射任何function或创build任何类别。 然后构build聚合,只有镜像中的最新版本将被聚合!

你可以从这里得到https://repository.sonatype.org/content/repositories/forge-sites/m2e/1.3.0/N/1.3.0.20121023-1108/

下载所有深入插件和function的文件。 保存在你的机器上的一个目录,保持一切在相同的目录结构。 将其移动到开发机器上的文件夹中。

在Eclipse中,转到帮助| 安装新软件…点击“添加”button点击“本地…”button浏览您放入文件的目录。 按照屏幕上的说明操作。

Eclipse插件通常依赖于其他插件。 跟踪依赖关系很难。 最好使用更新站点下载所有依赖关系,然后分发到其他Eclipse下拉菜单。 对于Eclipse 3.4或更新版本,您可以使用Eclipsefunction的dropins。 这样,每次必须重新安装Eclipse时,都不必从更新站点安装插件。 阅读http://michsan.web.id/content/how-install-eclipse-plugins-offline

如果你看不到网页,我会给你一些描述

准备外部插件的目录

创build特殊的目录来保存我们心爱的插件,例如在/ home / ichsan / eclipse-dropins中,我们将安装Maven插件:m2eclipse。

 mkdir /home/ichsan/eclipse-dropins 

现在,我们将把这个目录称为DROPINS

准备沙箱

接下来,通过使用Git,我们将创build一个Eclipse沙箱。 重点是在新的Eclipse上安装一个插件。 每次我们要安装一个新的插件时,我们最好使用Git来创build新的Eclipse的新分支,而不是每次安装新的Eclipse。

首先,提取/安装新的Eclipse到/ home / ichsan / eclipse-sandbox目录(以便find/home/ichsan/eclipse-sandbox/eclipse.ini)。 我们把目录称为ECLIPSE_SANDBOX。

接下来,提交新的安装。 这一步应该只做一次。

 cd $ECLIPSE_SANDBOX git init git add . git commit -am "Fresh Eclipse" 

在沙箱上安装插件

现在是有趣的部分。 假设我们必须安装m2eclipse插件。 我们将在新的Git分支上安装这个,这样主分支将保持干净或保持原样。

 cd $ECLIPSE_SANDBOX git checkout -b "m2eclipse" 

现在,我们启动ECLIPSE_SANDBOX的Eclipse并下载插件。 一旦完成,我们closuresEclipse并检查已经创build了哪些新的目录或文件(使用Git)。 请记住,我们只关心新的插件和function目录及其内容。 所以,我们不会把其余的复制到下拉列表中。

 # Prepare the m2eclipse plugin directories mkdir -p $DROPINS/m2eclipse/eclipse/plugins mkdir -p $DROPINS/m2eclipse/eclipse/features cd $ECLIPSE_SANDBOX for f in $(git status | sed "s/#\t//g" | grep -P "^plugins" ); do cp -R $f $DROPINS/m2eclipse/eclipse/plugins; done for f in $(git status | sed "s/#\t//g" | grep -P "^features"); do cp -R $f $DROPINS/m2eclipse/eclipse/features; done # Make the directory read only chmod -R -w $DROPINS/m2eclipse # Commit changes git add . git add -u git commit -am "M2Eclipse plugin installed" # Back to master branch to make Eclipse clean again and ready for other plugin installations git checkout master Installing the plugin 

只需将DROPINS / m2eclipse的目录复制到ECLIPSE_HOME / dropins或创build一个符号链接即可。 我们完成了!

 cd $ECLIPSE_HOME/dropins ln -s $DROPINS/m2eclipse 

另一种方法是备份新鲜Eclipse提交和插件安装后提交之间的差异。

 for i in `git diff hashFreshEclipse hashPluginInstall --name-only`;do if [ -f $i ]; then tar -r -f m2e-android.tar $i fi done gzip m2e-android.tar