2008-12-08 99 views
11

在为开发团队创建自定义Eclipse分发的上下文中。创建一个Eclipse“Distribution”?

我该如何构建一个包含特定插件集的自定义Eclipse发行版?添加一种更新站点来添加自定义Eclipse的更新插件的特定版本会很困难吗?

+0

网络搜索引擎不理解这个词在引号“” – 2013-04-04 10:17:08

+0

Yoxos提供了一个解决这个:https://yoxos.eclipsesource.com/ – 2014-10-08 18:22:45

+0

参见Genuitec的安全传递中心:https://www.genuitec.com/products/sdc/ – 2014-10-08 18:23:24

回答

5

Eclipse不是那些需要“安装”的应用程序,因为它可以被复制到一个目录结构中,并且设置了快捷方式来运行它(a la BIRT all-in-one发行版)。

我会建议在一台机器上安装它,获取所有安装的插件,然后压缩目录并使用它来分发到其他机器。

并且运行您自己的更新站点并不困难,您只需要一台服务器,您只需安装所需的插件版本,并确保在制作zip文件之前将该分发点指向该服务器。没有什么能阻止你的开发者连接到另一个站点。

+2

该方法的主要问题是Eclipse在安装插件时在其元数据中编码安装路径。因此,如果将一个用户的eclipse安装复制到另一个用户,它将会崩溃。 – Guss 2011-06-16 10:35:27

0

只需将C:\ eclipse \ plugins目录压缩并分发即可。

只需确保开发人员使用“-clean”选项启动Eclipse,以确保包含任何更改。

1

对于任何试图组装他们自己的Eclipse发行版来熟悉Eclipse Packaging Project http://www.eclipse.org/epp/的人来说,我可能会感兴趣。要设置专用更新站点,Sonatype的Nexus Professional专门用于此目的(商业许可)。

17

我意识到这是一个旧帖子,但它不断出现在我所做的搜索中,并且考虑到在交付Eclipse插件时发生的所有更改和成熟度,我想详细介绍一些细节...所以,对于那些最终在这个页面上的人,希望以下内容能帮助你!

总结我个人的调查结果:

  • 目前在这一领域已经有许多改进,无论是在开源和商业
  • 分布的复杂性往往大于预期
  • 建立在背上别人,这是值得的!

虽然我为一家提供商业解决方案的公司(http://genuitec.com/sdc)工作,但我已尝试使用免费解决方案来回答Eclipse交付的实际问题。

因此,没有进一步的告别......

绝对最小的解决方案是从Eclipse.org下载Eclipse的包,加入你想要的插件,设置在在的eclipse.ini参数 - 清洁,拉链拉上该目录并将其交给你的团队。只要您从内部更新站点添加了这些功能(并且URL保持不变),Eclipse就可以从中进行更新。

这将是第一次,因为它很容易,这是大多数人开始做的事情。但它会忽略工具堆栈的生命周期。下面是我在与他们的Eclipse工具帮助客户遇到了一些难点:

  • 的Eclipse包:你必须是一个Eclipse/P2大师建立和维护的Eclipse包。 EPP工具允许您构建自己的包,但是您需要围绕Eclipse包p2和EPP工具提供大量的领域知识。一个开始的地方是http://wiki.eclipse.org/EPP/How_to_build_a_package_locally

  • 插件:寻找插件涉及大量寻找更新网站,然后你永远不能确定你有确切的正确的二进制文件。有时候更新站点会停止运行,或者当插件开发者发布新的更新站点时,您会失去对Eclipse版本的支持。其中一个建议是制作更新站点的本地副本,以减轻您遇到此类问题的风险。 Eclipse更新:如果您希望您的团队切换Eclipse版本,那么最终只会在下一个版本中重新构建您的工具堆栈,并让所有人都重新安装。运送邮编时无法解决此问题。

  • 插件更新:Eclipse旨在继续安装新版本的插件,但在大型生产团队中可能会适得其反。只要您的团队不出去并添加他们自己的更新站点,更新站点的本地镜像就可以为您提供帮助。

  • 安全性:您是否需要阻止您的团队安装某些软件?那需要签名的工具呢?您必须编写插件来限制软件包的功能,并且您可能必须自己签名插件。 PDE构建对签名提供了一些支持。

  • 长期维护:在几年(或有时几个月)重建工具堆栈几乎是不可能的,因为支持不同版本的Eclipse和不同的插件版本在Eclipse生态系统中动态进行。保存Eclipse包的副本。买大硬盘。镜像您使用的更新站点。

  • 工作区设置:您可以将Eclipse部署到您的团队,但这只是该过程的第一步。自动化工作区设置,例如偏好,项目,Checkstyle或PMD配置,可以大大减少团队花在准备工作上的时间。此外,这些设置会随着您添加创建连续管理麻烦的项目而经常变化。当传递一个zip文件时,我发现团队也传递了相应的WIKI页面或类似的东西。通常由每位开发人员来确保他们遵循这些步骤。

  • 管理多个软件包:也许你的开发团队有一个软件包,另一个软件包用于你的QA团队。然后你的开发团队不断发展壮大,并分成两组,工具需求略有不同,现在你的QA团队也需要多个软件包。然后你开始在Eclipse之上发布你自己的插件,这是你正在管理的另一个包。几年之后,您将花费所有时间构建Eclipse包,并且您甚至无需尝试就成为了Eclipse/P2/Update Site guru。显然,这里的解决方案是雇用某人为你做这件事。 :)

  • 短信分发:这适用于压缩文件合理,但推出更新会变得凌乱。通常,人们使用SMS来下载第一次安装,然后开发人员的工作就是保持最新。

4

回答到Lokki的原来的问题,领队可以创建自己的团队“发行”,作为.p2f文件, 包含插件ID,更新网站,并使用精确的版本。

使用(文件 - >导出 - >安装 - >软件项目到文件)编写插件列表文件(* .p2f),

文件例如

<?xml version='1.0' encoding='UTF-8'?> 
<?p2f version='1.0.0'?> 
<p2f version='1.0.0'> 
    <ius size='5'> 
    <iu id='org.chromium.sdk.feature.group' name='ChromeDevTools SDK' version='0.3.9.201302091448'> 
     <repositories size='1'> 
     <repository location='http://www.tomotaro1065.com/nodeclipse/updates/'/> 
     </repositories> 
    </iu> 
    <iu id='org.chromium.debug.feature.group' name='Chromium JavaScript Remote Debugger' version='0.3.9.201302091448'> 
     <repositories size='1'> 
     <repository location='http://www.tomotaro1065.com/nodeclipse/updates/'/> 
     </repositories> 
    </iu> 
    <iu id='com.eclipsesource.jshint.feature.feature.group' name='JSHint Eclipse Integration' version='0.9.6.20130319-2128'> 
     <repositories size='1'> 
     <repository location='http://github.eclipsesource.com/jshint-eclipse/updates/'/> 
     </repositories> 
    </iu> 
    <iu id='markdown.editor.feature.feature.group' name='Markdown Editor' version='0.2.3'> 
     <repositories size='1'> 
     <repository location='http://winterwell.com/software/updatesite/'/> 
     </repositories> 
    </iu> 
    <iu id='org.nodeclipse.feature.group' name='Nodeclipse' version='0.2.0.201302091448'> 
     <repositories size='1'> 
     <repository location='http://www.tomotaro1065.com/nodeclipse/updates/'/> 
     </repositories> 
    </iu> 
    </ius> 
</p2f> 

然后(文件 - >导入 - >从文件安装的软件产品)

Import -> Install Software Item from file

Eclipse Node.js IDE组装这种方式。

这个问题是关系到 Eclipse IDE: install set of plugins