我要安装的插件提供了一个安装更新站点。但是,我要将其安装到的Eclipse安装位于未连接到Internet的计算机上。有没有办法让我访问该站点(HTTP,FTP等)下载其中的文件以进行离线安装?
答案 0 :(得分:54)
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
参考:Equinox p2 repository mirroring
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”会更容易(至少对我而言)。
简而言之:
下载网站:
wget --recursive --no-parent http://url.of/updatesite
获取下载的更新站点的内容并将其移至离线环境
您可以阅读更多详细信息here。
答案 2 :(得分:9)
通过将更新站点上可用的必需JAR复制到Eclipse安装的插件和功能目录中,可以在没有Eclipse更新程序的情况下安装大多数Eclipse插件。
在某些情况下,必须使用-clean开关启动Eclipse。
以下是如何为m2eclipse插件执行此操作的示例:
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。
我使用的基本步骤是:
重要说明:如果您没有映射给定存储库中的任何功能,则会镜像整个存储库(我认为所有包的最新版本,而不是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文件夹中运行以下命令:
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:/ Users / foo / Desktop
在没有Internet连接的情况下将文件夹传输到机器。然后,启动Eclipse->帮助>安装新软件。指定用于安装的本地存储库(即您刚刚转移的文件夹)。应该可以。