下载用于脱机安装的 Eclipse 插件更新站点

我想要安装的插件提供了一个用于安装的更新站点。但是,我希望将其安装到的 Eclipse 安装位于一台没有连接到 Internet 的机器上。我是否有办法访问站点(HTTP、 FTP 等)来下载其中的文件进行脱机安装?

92136 次浏览

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

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

下面是 m2eclipseplugin 的示例:

  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 安装中需要放置 JAR 的目录。

PS: 这个方法有点怪,但是它是基于 场地地图参考资料的。但是请参考更新

更新

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

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

或者发现臭虫:

<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中必须单击 properties 按钮。

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

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

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

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

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

为外部插件准备目录

创建一个特殊的目录来保存我们喜欢的插件,例如在/home/ichsan/eclipse-dropin 中我们将安装 Maven 插件: m2eclipse。

mkdir /home/ichsan/eclipse-dropins

从现在开始,我们将这个目录称为 DROPINS

准备沙盒

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

首先,将新的 ECLIPSE 解压缩/安装到一个目录,例如/home/ichsan/ECLIPSE- 沙箱(这样我们将找到/home/ichsan/ECLIPSE- 沙箱/ECLIPSE.ini) ,我们将该目录称为 ECLIPSE _ SANDBOX。

接下来,提交新的安装。这个步骤应该只执行一次。

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

在沙箱上安装插件

现在是有趣的部分。假设我们必须安装 m2eclipseplugin。我们将把它安装在新的 Git 分支上,这样主分支将保持清洁或完整。

cd $ECLIPSE_SANDBOX
git checkout -b "m2eclipse"

现在,我们启动 ECLIPSE _ SANDBOX 的 ECLIPSE 并下载插件。完成之后,我们关闭 Eclipse 并检查已经创建了哪些新目录或文件(使用 Git)。请记住,我们只关心新的插件和特性目录及其中的内容。所以,我们不会把剩下的复制到 dropin。

# 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/dropin 或创建一个符号链接即可!

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

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

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

下载所有深入到插件和特性的文件。存储在计算机上的一个目录中,并将所有内容保持在相同的目录结构中。将它移动到开发计算机上的一个文件夹中。

在 Eclipse 中打开 Help | Inall New Software..。 点击“添加”按钮 点击“本地...”按钮 浏览将文件放入的目录。按照屏幕上的说明操作。

在与镜像斗争了一段时间之后,我意识到使用“ wget”代替它要容易得多(至少对我来说是这样)。

简而言之:

  1. 下载网站:

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

  2. 获取下载的更新站点的内容并将其移动到脱机环境中

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

你可以阅读有关它的更多细节 给你

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

我使用的基本步骤是:

  • 文件 > New > Other... > b3 > 存储库聚合。
  • 选择 聚集节点并将 构建根设置为您希望聚合的回购到达的文件夹。
  • 使用 R 添加您关心的平台-单击 聚集节点 > New Child > Configuration。
  • 添加一个 验证集,通常将其 标签设置为 main。
  • 如果您不需要从主 Eclipse 存储库(即: http://download.eclipse.org/releases/mars)添加任何附加包,您可以将其作为 验证存储库添加到 验证集,但通常您需要将其作为 贡献下的 映射存储库添加,以便可以下载依赖项和/或附加 Eclipse 特性。
  • 对于每个插件,添加一个带有 标签贡献,在该插件下面至少添加一个带有 地点映射存储库
  • 如果需要,可以将 自定义类别节点添加到 聚集; 为它们分别提供唯一的 描述识别码标签
  • 展开底部的 知识库浏览器节点 > 展开 repo url > 展开 可安装组件 > 查看 分类(如果存在)和/或 特征下的特性。
  • 右键单击您想要的特性并添加到自定义类别(如果您正在使用这些特性) ,否则按照 > Mated Feature 将其添加到父映射存储库。
  • R-click any node > Build Aggreation 单击任何节点 > 构建聚合。

重要提示: 如果您没有映射给定存储库的任何特性,那么整个存储库将被镜像(我认为是所有 bundle 的最新版本,而不是实际上回购中的所有内容)。

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

虽然 b3聚合器通常只下载您映射的每个功能的最新版本(以及它的依赖关系) ,但是如果随着新版本的发布,您反复使用 构建聚合,过时的版本将在您的聚合中累积。你可以使用 清理,然后构建聚合,但这意味着你必须重新下载一切。相反,只需要添加另一个。B3aggr 聚合文件,设置 Build Root,添加 Configurations,并使用本地镜像的 final目录的路径添加一个具有映射存储库的贡献。不要映射任何特性或创建任何类别。然后构建聚合,只有镜像中的最新版本才会被聚合!

我只是面对这个问题,并通过遵循这个 向导的指示来解决它。总之,在 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-> Help > Install new software。为安装指定本地存储库(即您刚刚传输的文件夹)。应该可以。