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


76

我要安装的插件提供了用于安装的更新站点。但是,我要安装到的Eclipse安装在未连接到Internet的机器上。我可以通过某种方式访问​​该站点(HTTP,FTP等)以下载其中的文件以进行脱机安装吗?

Answers:


57

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

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

您可以在我的脚本存储库中关注这些脚本的演变。


对于开普勒,请使用
vincentlcy

@vincentlcy-这不是在“基于p2信息的镜像”标题中找到的吗?
罗伯特·蒙提亚努

哦,对不起,我不知道这是同一件事。在我看来,在开普勒我找不到这个$ eclipse_home / plugins / org.eclipse.equinox.launcher _ *。jar
vincentlcy 2013年

开普勒安装程序中仍然有启动器jar,但我认为它是可选的。因此,我首先移动了“ p2”部分,因为它是受支持的部分,并且看上去与您链接的部分完全一样。感谢您的贡献:-)
Robert Munteanu

任何方式也可以下载依赖项吗?因为我尝试过进行m2e脱机安装,它抛出一个错误,说它找不到slf4j软件包
darthbinamira 2014年

11

经过一段时间的镜像工作后,我意识到(至少对我来说)使用“ wget”要容易得多。

简而言之:

  1. 下载站点:

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

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

  3. 通过“本地...”按钮将脱机更新站点目录添加到可用软件站点列表中。

您可以在这里阅读更多详细信息。


最简单的方法。我的主要问题是找到Jubula的网址。download.eclipse.org将内容隐藏在“显示目录内容”链接后面。最后我猜对了http://download.eclipse.org/jubula/release/mars/
user3132194 2015年

1
对于S3或其他对象存储中托管的内容,这也将失败,因此请不要提供可爬网的网站。
丹尼尔·霍尔姆斯

好吧,它大部分在3年前就起作用了。当时大多数插件都没有使用对象存储...
Anton

1
wget --recursive --no-parent download.eclipse.org/releases/kepler,但它仅下载xml文件。如何下载完整文件。
AhmedRana

9

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

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

这是一个如何为m2eclipse插件执行此操作的示例:

  1. m2eclipse更新站点是http://m2eclipse.sonatype.org/update。识别所需的JAR列表是第一步。通常可以在site.xml文件中找到该文件。在这种情况下,您可以在http://m2eclipse.sonatype.org/update/site.xml中找到它。
  2. 将要下载的JAR列表过滤到要使用的插件版本。可以通过每个“功能”的版本属性来确定。如果幸运的话,您将在category节点中找到JAR的描述。
  3. 请注意每个需要下载的JAR的url属性。这将包括提供JAR的服务器上的子目录,以及Eclipse安装中需要放置子目录的目录。

PS:这种方法有点笨拙,但是基于站点地图参考。但是请参考更新

更新资料

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


尝试了您的第一个建议。能够找到并下载JAR,但它们似乎不包含任何内容。将它们安装在“ dropins”目录中并重新启动,但也没有任何反应。会尝试您的其他建议。顺便说一句,我要安装的插件是来自download.eclipse.org/tools/mylyn/update/incubator的Mylyn的通用Web模板连接器。
Chry Cheng

对于第一个建议,我尝试下载download.eclipse.org/tools/mylyn/update/incubator/features/…。下载没有问题。
Vineet Reynolds,

回顾一下,更新URL为download.eclipse.org/tools/mylyn/update/incubator,site.xml中提到的文件为features / org.eclipse.mylyn.sandbox.ui_feature_3.2.1.v20090722-0200-e3x。罐。因此,有效的URL为JAR是download.eclipse.org/tools/mylyn/update/incubator/features/...
维尼特雷诺兹

1
获取功能将无济于事。您需要插件。我建议尝试使用Eclipse Updater创建该站点的镜像。完成后,只需将其打包为一个zip,然后将其用作更新管理器中的更新站点。
zvikico

1
无论如何,可以从Mylyn下载页面以zip @ eclipse.org/ downloads/download.php?file=/ tools / mylyn / update/…的形式获得相同的插件。这应该是OP在本地分发插件的最简单方法。
Vineet Reynolds

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 :,然后从那里复制它。在Eclipse 3.5中,应该有一个More ...按钮,在3.4中,您必须单击properties按钮。


3

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

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

在Eclipse中转到帮助| 安装新软件...单击“添加”按钮单击“本地...”按钮浏览放置文件的目录。请按照屏幕上的说明进行操作。


3

Eclipse插件通常依赖于其他插件。跟踪依赖关系有点困难。最好一次使用更新站点下载所有依赖项,并且可以分发到其他Eclipse dropins。对于Eclipse 3.4或更高版本,可以使用dropins,这是Eclipse的功能。这样,您不必每次都要重新安装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上安装一个插件。我们最好每次使用Git来创建新的Eclipse分支,而不是每次我们都想安装新的插件时都安装新的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分支上,以便master分支保持干净或完整无缺。

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

另一种方法是备份新的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

3

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

我使用的基本步骤是:

  • 文件>新建>其他...> b3>存储库聚合。
  • 选择Aggregation节点,然后将Build Root设置为想要聚合的仓库去的文件夹。
  • 使用R添加您要关注的平台,然后单击聚合节点>新建子节点>配置。
  • 添加一个Validation Set,通常将其Label设置为main。
  • 如果你不需要从Eclipse主库的任何额外束(即:http://download.eclipse.org/releases/mars),你可以把它添加到验证集作为验证存储库,但通常需要将其添加为贡献下的映射存储库,以便可以下载依赖项和/或其他eclipse功能。
  • 对于每个插件,添加贡献标签,并在至少一个带有Location的映射存储库下
  • 如果需要,将“自定义类别”节点添加到“聚合”;给他们每个人一个独特的描述标识符标签
  • 展开底部的“存储库浏览器”节点>展开存储库URL>展开“可安装单元”>在“类别”(如果存在)和/或“功能”下查看功能
  • R单击所需的要素,然后单击添加到自定义类别(如果使用的话),否则,单击>映射的要素添加到父映射的存储库。
  • R单击任意节点>构建聚合。

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

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

虽然b3 Aggregator通常仅下载已映射的每个功能(及其依赖项)的最新版本,但是如果随着新版本的发布随着时间的推移反复使用Build Aggregation,则过时的版本会累积在您的聚合中。您可以先使用Clean然后再进行Build Aggregation,但这意味着您将必须重新下载所有内容。取而代之的是,只需添加另一个.b3aggr聚合文件,设置构建根目录,添加您的配置,并使用本地镜像final目录的路径添加一个具有映射存储库的贡献。不要映射任何要素或创建任何类别。然后,进行“构建聚合”,仅聚合镜像中的最新版本!


2

我只是面对此问题,并按照本指南中的说明解决了该问题。总之,在终端上的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:/用户/ foo /桌面

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


与相同问题中的现有答案相同:stackoverflow.com/a/1907322。请改用现有答案,并为小笔捐款添加评论。
Chry Cheng

初读时我不理解现有答案,这就是为什么我搜索其他信息并在此处发布答案的原因。stackoverflow.com/questions/38571201/…的OP也认为答案“似乎已经过时”。但是,是的,我同意我应该发表评论,谢谢!
Zhiyuan-Amos

1
这个答案比接受的答案提供了更清晰的说明,这也是我使用的答案。感谢您提供它。
约翰·耶稣,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.