是否可以在Github上托管Eclipse更新站点?

时间:2010-05-10 09:24:48

标签: java eclipse plugins github

我正在使用GitHub开发Eclipse插件。我想为我的插件创建一个公共Eclipse更新站点。我可以使用GitHub吗?

我知道GitHub可以通过使用文件信息页面上提供的“原始”链接来托管单个文件。

6 个答案:

答案 0 :(得分:12)

忘记Github项目发布功能,它不能用作真正的更新站点(参见最后的注释)。

要实现您的目标,您可以创建Github存储库,在那里提交/推送您的p2存储库,然后使用原始链接将其作为更新站点提供。 例如,对于存储库:

https://github.com/some-user/some-repository/

您可以使用以下链接将其作为更新站点提供:

https://github.com/some-user/some-repository/raw/master/

注意:是的,如果您在浏览器中打开更新站点链接,github将不会为您提供文件列表,而是404.但这没关系。 Eclipse更新站点机制不需要父链接有效。相反,Eclipse将直接查找<update-site URL>/artifacts.jar(或.xml),并且从artifacts.jar中的信息中,它将自己发现存储在更新站点中的其他工件的URL。 AFAIK,Eclipse更新机制决不需要Web服务器来执行目录的文件列表。

注意2:如果您使用Github项目版本,则只能附加一个压缩的p2存储库。这不是一个正确的更新站点,因为它是一个静态存储库:没有可以上传新版本的URL。 Eclipse将无法自动发现新的更新,而是用户需要为他/她想要更新的每个新版本下载zip。 (还有一个正确的更新站点,只下载安装/更新/查询所需的工件 - 一个小优势)

答案 1 :(得分:9)

Github页面不适合更新网站。

Github pages可能无法正确提供大型二进制文件,如本issue中所述。如果你的罐子很小,可能没问题,但总体而言他们建议不要在那里放置二进制文件。相反,他们建议将二进制文件放在存储库的下载部分中。如果这种情况发生变化,我会很高兴,因为通过推送到github发布更新站点会非常方便。

现在,必须使用他们的API以编程方式上传下载部分中的文件。 this other question的答案指向使用此API的一些库和脚本在java / maven,perl,ruby等中使用。

答案 2 :(得分:5)

您现在可以在发布页面(2013年7月)中尝试。

请参阅“Publish a project release (binary/source packages) on Github?


原始答案(2013年1月)

我没有测试过,但从技术上讲,可以在任何共享路径中定义p2存储库(文件系统共享或基于Web共享)

你应该只需要:

答案 3 :(得分:4)

http://pages.github.com/

Github Pages功能允许您托管文件的任意文件夹,而无需将每个文件转换为github页面。

答案 4 :(得分:1)

不再可能,下载API has officially been deprecated

来自GitHub博客:

  

但是,除了源存档之外,某些项目还需要托管和分发大型二进制文件。如果这适用于您,我们建议您使用为此目的而存在的许多出色服务之一,例如Amazon S3 / Amazon CloudFront或SourceForge。查看我们关于分发大型二进制文件的帮助文章。

请参阅此help article on distributing large binaries

答案 5 :(得分:1)

我能够使用GitHub pages功能托管Eclipse更新站点。我发现很难弄清楚我需要的所有部分,所以这里是我所遵循的步骤的简要说明。

  • 构建Eclipse插件项目,并在本地工作站上进行测试。
  • 添加feature project,然后添加插件。同时设置说明,版权和许可信息。
  • 为您的存储库配置publishing source。我认为/docs文件夹最容易使用。生成起始网站的一种方法是转到GitHub存储库设置页面,然后启动自动页面生成器。
  • 创建嵌套在/docs文件夹中的更新站点项目。将它放在一个明显的文件夹中,例如update
  • 创建一个类别,并将该功能添加到更新项目中。
  • 单击Build all按钮生成jar文件。
  • 提交并推送所有更改。
  • 尝试从更新站点安装。
  • 更新网站生效后,您可以在Eclipse marketplace中发布插件。这是可选的,只是让你的插件更容易找到。

正如其他人所提到的,GitHub页面不支持巨大的二进制文件,因此这只适用于小型项目。要查看示例,请查看我的Live Coding in Python project