我正在使用GitHub开发Eclipse插件,想要为我的插件建立一个公共的Eclipse更新站点。我能在GitHub上做到吗?
我知道GitHub可以通过使用文件信息页面提供的“raw”链接来托管单个文件。
不要使用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。据我所知,Eclipse更新机制在任何时候都不需要Web服务器列出目录中的文件。
注2:如果使用Github项目发布,则只能附加已压缩的p2仓库。那不是一个合适的更新站点,因为它是一个静态仓库:没有URL可以将新发布上传到。 Eclipse将无法自动发现新的更新,而是用户需要下载每个要更新到的新版本的zip文件。 (此外,使用合适的更新站点只会下载安装/更新/查询所需的必要工件-这是一个小优势)
Github Pages 不是一个适合更新站点的地方。
Github Pages可能无法有效地提供大型二进制文件,正如这个问题所解释的那样。如果你的JAR文件很小,放置二进制文件在其中可能还可以,但总体上他们建议不要将二进制文件放在这里。相反,他们建议将二进制文件放在存储库的下载部分中。如果这种情况改变了,我会很高兴,因为通过推送到 Github 来发布更新站点将非常方便。
目前,人们必须使用他们的API以编程方式上传文件到下载部分。回答另一篇问题指出了一些库和脚本,它们使用此API用于Java/Maven、Perl、Ruby等语言。
现在您可以在一个发布页面(2013年7月)中尝试它。
参见“如何在Github上发布项目发布版(二进制/源代码包)?”
原始回答(2013年1月)
我没有测试过,但从技术上讲,p2存储库可以在任何共享路径(无论是文件系统共享还是基于Web的共享)中定义
您只需要:
/docs
文件夹是最容易使用的。生成起始网站的一种方法是转到GitHub存储库设置页面,并启动自动页面生成器。
在/docs
文件夹中创建一个更新站点项目。将其放在明显的文件夹中,例如update
。
创建一个类别,并将特性添加到更新项目中。
单击“全部构建”按钮以生成jar文件。
提交并推送所有更改。
尝试从更新站点安装。
一旦更新站点运行正常,您可以将您的插件发布到Eclipse市场。这是可选的,只是让您的插件更容易找到。不,现在不再可能了,下载API 已正式弃用。
来自GitHub博客:
然而,一些项目需要托管和分发大型二进制文件,除了源存档。如果您也有这样的需求,我们建议使用许多出色的专门为此目的存在的服务,例如Amazon S3 / Amazon CloudFront或SourceForge。请查看我们的帮助文章,以了解如何分发大型二进制文件。
请参阅有关分发大型二进制文件的帮助文章。
plugins/
和features/
下的每个文件移动到p2存储库的根目录下。
- 在artifacts.xml
文件中,用/
替换/plugins/
和/features/
的所有引用,这些文件被压缩在artifacts.jar
和artifacts.xml.xz
中。https://fbricon.github.io/posts/use-github-releases-as-p2-repo/