下载Eclipse插件更新站点以进行脱机安装

时间:2009-09-03 02:39:12

标签: eclipse plugins installation

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

8 个答案:

答案 0 :(得分:54)

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 repository mirroring

基于site.xml信息的镜像

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

参考:Running the update manager from the command line

您可以在我的script repository中跟踪这些脚本的演变。

答案 1 :(得分:11)

经过一段时间的镜像挣扎后,我意识到使用“wget”会更容易(至少对我而言)。

简而言之:

  1. 下载网站:

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

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

  3. 通过“Local ...”按钮将您的离线更新站点目录添加到可用软件站点列表中。
  4. 您可以阅读更多详细信息here

答案 2 :(得分:9)

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

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

以下是如何为m2eclipse插件执行此操作的示例:

  1. m2eclipse更新网站为http://m2eclipse.sonatype.org/update。确定所需的JAR列表是第一步。这通常可以在site.xml文件中找到;在这种情况下,您可以在http://m2eclipse.sonatype.org/update/site.xml中找到它。
  2. 将要下载的JAR列表过滤到您要使用的插件版本。这可以通过每个“特征”的版本属性来确定。如果幸运的话,您可以在类别节点中找到JAR的描述。
  3. 请注意需要下载的每个JAR的url属性。这将包括JAR可用的服务器上的子目录,以及Eclipse安装中需要放置它们的目录。
  4. PS:这种方法有点骇人听闻,但它基于site-map reference。但请参阅更新

    <强>更新

    我没有尝试过这个,但您可以创建一个本地镜像站点,其他人都可以从中获取Eclipse插件。在Galileo中,可以通过运行Eclipse updater in the standalone mode via the mirror command来完成。

答案 3 :(得分:5)

您可以使用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任务。

您可以通过打开“软件更新”找到IU ID:s并从那里复制它。在Eclipse 3.5中应该有一个More ...按钮,在3.4中你必须单击属性按钮。

答案 4 :(得分:3)

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

我使用的基本步骤是:

  • 文件&gt;新&gt;其他...&gt; b3&gt;存储库聚合。
  • 选择聚合节点,并将 Build Root 设置为您希望聚合回购的文件夹。
  • 使用R-click 聚合节点&gt;添加您关注的平台新生儿&gt;配置。
  • 添加一个验证集,通常将其标签设置为main。
  • 如果您不需要主eclipse存储库中的任何其他包(例如:http://download.eclipse.org/releases/mars),您可以将其作为验证存储库<验证集添加到验证集 / strong>,但通常您需要将其添加为贡献下的映射存储库,以便可以下载依赖项和/或其他日食功能。
  • 对于每个插件,使用标签添加贡献,并使用位置<添加至少一个映射存储库 / em>的
  • 如果需要,可以将自定义类别节点添加到聚合;为每个人提供唯一的描述标识符标签
  • 展开底部的资源库浏览器节点&gt;展开repo url&gt;展开可安装单元&gt;查看类别(如果存在)和/或功能下的功能。
  • R-单击所需的功能并添加到自定义类别(如果您使用的是这些),否则添加到父映射存储库为&gt;映射功能。
  • 点击任意节点&gt;建立聚合。

重要说明:如果您没有映射给定存储库中的任何功能,则会镜像整个存储库(我认为所有包的最新版本,而不是repo中的所有内容)。

幸运的是,我没有弄乱排除规则或有效配置规则,这似乎使事情变得更复杂。但是,如果存储库包含具有依赖性冲突的包,则可能需要排除规则,在这种情况下,需要排除一个或多个冲突的包。

虽然b3 Aggregator通常只下载您映射的每个功能的最新版本(以及它的依赖项),但如果随着新版本的发布重复使用 Build Aggregation ,过时的版本将会累积在你的聚合中。您可以使用清理然后构建聚合,但这意味着您必须重新下载所有内容。相反,只需添加另一个.b3aggr聚合文件,设置构建根,添加配置,并使用本地镜像final目录的路径向映射存储库添加一个贡献。不要映射任何功能或创建任何类别。然后构建聚合,只汇总镜像中的最新版本!

答案 5 :(得分:2)

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

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

准备外部插件的目录

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

mkdir /home/ichsan/eclipse-dropins

现在,我们将此目录称为DROPINS

准备沙箱

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

首先,将新Eclipse提取/安装到目录,例如/ home / ichsan / eclipse-sandbox(这样我们就可以找到/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并下载插件。完成后,我们关闭Eclipse并检查已创建的新目录或文件(使用Git)。请记住,我们只关心新的插件和功能目录及其中的内容。因此,我们不会将其余部分复制到dropins中。

# 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或创建符号链接即可。我们已经完成了!

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

另一种方法是备份fresh-Eclipse提交和after-plugin-installation提交之间的差异。

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

答案 6 :(得分:2)

您可以从https://repository.sonatype.org/content/repositories/forge-sites/m2e/1.3.0/N/1.3.0.20121023-1108/

获取此信息

下载所有深入插件和功能的文件。存储在计算机上的目录中,使所有内容保持在同一目录结构中。将其移动到开发机器上的文件夹中。

在Eclipse中转到帮助| Intall新软件...... 点击“添加”按钮 点击“本地...”按钮 浏览将文件放入的目录。按照屏幕上的说明操作。

答案 7 :(得分:0)

我刚刚面对此问题,并按照此guide中的说明进行了解决。总之,在终端上的Eclipse文件夹中运行以下命令:

  1. eclipsec.exe -application org.eclipse.equinox.p2.metadata.repository.mirrorApplication -source $1 -destination $2

  2. eclipsec.exe -application org.eclipse.equinox.p2.artifact.repository.mirrorApplication -source $1 -destination $2

其中$1是指联机存储库的URL,而$2是指本地文件夹的路径。例如。在我的Windows桌面上下载Vrapper:

$ 1 = http://vrapper.sourceforge.net/update-site/stable/

$ 2 = C:/ Users / foo / Desktop

在没有Internet连接的情况下将文件夹传输到机器。然后,启动Eclipse->帮助>安装新软件。指定用于安装的本地存储库(即您刚刚转移的文件夹)。应该可以。