java - 是否有可能使 Eclipse p2 配置机制在*本地*运行?

标签 java eclipse provisioning p2

Eclipse 3.4[.x] - 也称为 Ganymede - 带有这种称为 p2 的新配置机制。

“配置”是允许按需发现和更新应用程序某些部分的过程,如 Sun Web site 上的这篇文章中一般解释的那样。 .

Eclipse 有一个扩展的 wiki section其中显示了 p2 的详细信息。 具体来说,它在这个 wiki 页面中说 p2 将寻找新的组件 不过看完之后。

我想(但您可以根据自己的经验确认这一点),p2 可以运行文件“file://”协议(protocol),这将允许它使用 local 文件(无论是在您的计算机或 UNC 路径 '\server\path'),如 illustrated here ,但也可以通过文件:

  • [eclipse-SDK-3.4-win32]\eclipse\configuration\.settings\org.eclipse.equinox.p2.artifact.repository.prefs
  • [eclipse-SDK-3.4-win32]\eclipse\configuration\.settings\org.eclipse.equinox.p2.metadata.repository.prefs

p2 机制用于更新 eclipse 本身,通过 eclipse 3.4 update site ,并在那些“.prefs”文件中引用如下行:

repositories/file:_C:_jv_eclipse_eclipse-SDK-3.4-win32_eclipse/url=file:/C:/jv/eclipse/eclipse-SDK-3.4-win32/eclipse/

现在,我如何将存在于该更新站点中的 Eclipse 组件复制到本地目录并通过提到的“.prefs”文件引用这些组件,以便让升级过程完全在本地运行,不用上网?
我想远程“更新站点”中存在的一些 p2 元数据文件也需要复制和更改。

您对此有什么想法/建议/提示吗? (即关于如何发现、检索和更新完整 Eclipse 安装所需的完整结构,以便在本地运行该安装)

最佳答案

是的,如果您使用 p2.director,您可以指定存储库位置

例如,这是我用来从 Ganymede 存储库的本地副本安装 eclipse (Ganymede) 的脚本片段

./eclipse\
      -nosplash -consolelog -debug\
      -vm "${VM}"\
      -application org.eclipse.equinox.p2.director.app.application\
      -metadataRepository file:${SHARED_REPOSITORY_DIR}\
      -artifactRepository file:${SHARED_REPOSITORY_DIR}\
      -installIU "${4-org.eclipse.sdk.ide}"\
      -destination "${3}"\
      -profile "${1}"\
      -profileProperties org.eclipse.update.install.features=true\
      -bundlepool ${SHARED_BUNDLEPOOL_DIR}\
      -p2.os linux\
      -p2.ws gtk\
      -p2.arch "${2}"\
      \
      -vmargs\
        -Xms64m -Xmx1024m -XX:MaxPermSize=256m\
        -Declipse.p2.data.area=${SHARED_P2_DIR}

这里有一些使用 p2 director 的链接

http://eclipse.dzone.com/articles/understanding-eclipse-p2-provi
http://wiki.eclipse.org/Equinox_p2_director_application

关于java - 是否有可能使 Eclipse p2 配置机制在*本地*运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/131704/

相关文章:

java - 如果显示键盘,Android 应用程序会崩溃

java - Azure SDK for Java - 引发 InvalidKeyException 的示例程序

java - 在 Java 中选择和替换随机生成的字母

linux - Chef Recipe ArgumentError 未知指令 : "\n"

iphone - AdHoc 配置 - 向仍在开发中的现有项目添加更多设备的最简单方法是什么?

vagrant - 带 Knife 的Octohost在裸机上独奏? (UserError:未安装 Vagrant )

java - 使用 MAC OS 在 Eclipse JAVA 中添加库

java - 通过构建路径配置依赖项 - 这些操作有什么作用?

java - 在 Java EE 应用程序中使用 servlet 中的 bean 类

c++ - 现有 C++ 应用程序中的 BIRT 集成