我要安装的插件提供了用于安装的更新站点。但是,我要安装到的Eclipse安装在未连接到Internet的机器上。我可以通过某种方式访问该站点(HTTP,FTP等)以下载其中的文件以进行脱机安装吗?
Answers:
Eclipse提供了一种通过命令行或通过ant任务自动镜像这些站点的方法。
$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
java -jar $eclipse_home/plugins/org.eclipse.equinox.launcher_*.jar -application org.eclipse.update.core.standaloneUpdate -command mirror -from $from -to $to
参考:从命令行运行更新管理器
您可以在我的脚本存储库中关注这些脚本的演变。
经过一段时间的镜像工作后,我意识到(至少对我来说)使用“ wget”要容易得多。
简而言之:
下载站点:
wget --recursive --no-parent http://url.of/updatesite
获取下载的更新站点的内容并将其移至您的离线环境
您可以在这里阅读更多详细信息。
http://download.eclipse.org/jubula/release/mars/
。
通过将更新站点上可用的必需JAR复制到Eclipse安装的plugins和features目录中,可以在没有Eclipse更新程序的情况下安装大多数Eclipse插件。
在某些情况下,必须使用-clean开关启动Eclipse。
这是一个如何为m2eclipse插件执行此操作的示例:
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>
或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按钮。
您可以从这里获得它https://repository.sonatype.org/content/repositories/forge-sites/m2e/1.3.0/N/1.3.0.20121023-1108/
下载所有深入到插件和功能的文件。存储在计算机上的目录中,使所有内容都保持相同的目录结构。将其移动到开发计算机上的文件夹中。
在Eclipse中转到帮助| 安装新软件...单击“添加”按钮单击“本地...”按钮浏览放置文件的目录。请按照屏幕上的说明进行操作。
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
我发现p2 mirrorApplication在某些站点上不能很好地工作,并且镜像了重复的工件(pack200和jar版本)。b3聚合器工作得更好,使自定义更新站点变得更加容易。有关安装说明和详细信息,请参见https://wiki.eclipse.org/Eclipse_b3/aggregator/manual上的手册。
我使用的基本步骤是:
重要说明:如果您没有映射给定存储库中的任何功能,则整个存储库都将被镜像(我认为所有捆绑软件的最新版本,而实际上不是仓库中的所有内容)。
幸运的是,我不必弄乱排除规则或有效配置规则,这似乎使事情变得更加复杂。但是,如果存储库包含具有依赖项冲突的分发包,则排除规则可能是必要的,在这种情况下,需要排除一个或多个冲突的分发包。
虽然b3 Aggregator通常仅下载已映射的每个功能(及其依赖项)的最新版本,但是如果随着新版本的发布随着时间的推移反复使用Build Aggregation,则过时的版本会累积在您的聚合中。您可以先使用Clean然后再进行Build Aggregation,但这意味着您将必须重新下载所有内容。取而代之的是,只需添加另一个.b3aggr聚合文件,设置构建根目录,添加您的配置,并使用本地镜像final
目录的路径添加一个具有映射存储库的贡献。不要映射任何要素或创建任何类别。然后,进行“构建聚合”,仅聚合镜像中的最新版本!
我只是面对此问题,并按照本指南中的说明解决了该问题。总之,在终端上的Eclipse文件夹中运行以下命令:
eclipsec.exe -application org.eclipse.equinox.p2.metadata.repository.mirrorApplication -source $1 -destination $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->帮助>安装新软件。指定用于安装的本地存储库(即,您刚刚转移的文件夹)。那应该工作。