【问题标题】:Is it possible to host an Eclipse update site on Github?是否可以在 Github 上托管 Eclipse 更新站点?
【发布时间】:2011-02-17 14:20:00
【问题描述】:

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

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

【问题讨论】:

标签: java eclipse plugins github


【解决方案1】:

忘记 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。 (还有一个适当的更新站点,只会下载安装/更新/查询所需的工件 - 一个小优势)

【讨论】:

  • 关于大型存储库和 Github 使用的说明。此链接描述了 Github 期望的限制:help.github.com/articles/what-is-my-disk-quota - “经验法则:每个存储库 1GB,每个文件 100MB”。对于大多数 Eclipse 更新站点来说,这应该没问题。如果它变得太大,您可以重置底层 Git 存储库。
  • 感谢分享原始链接以公开提供 github 文件夹。
  • 我试过这个(这里是my update site),但奇怪的是,这似乎适用于 Linux 上的 Eclipse,但在 Windows 计算机上我既不能安装也不能更新。有没有其他人遇到过这种情况?
  • 我刚刚尝试从github.com/eyala/pig-eclipse-update-site/raw/master 在 Windows 中安装您的功能(Pig Latin),并且安装良好。
【解决方案2】:

Github 页面不适合用于更新站点。

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

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

【讨论】:

    【解决方案3】:

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

    见“Publish a project release (binary/source packages) on Github?


    原始答案(2013 年 1 月)

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

    您只需要:

    【讨论】:

    • 我遇到的问题是 github 将目录和文件作为 HTML 页面提供。要访问文件的内容,有一个“原始”链接。但是,我的更新站点由几个文件和文件夹组成,所以我认为我需要找到一种方法从 github 获取“原始”目录。或者,是否可以在所有文件都存储在一个存档中的压缩文件中创建更新站点?
    • @mchr:我不认为更新站点可以是一个单独的 zip 文件。至于原始目录列表,这是support.github.com 的一个好问题:support.github.com/discussions/site/… 可能会有所帮助:在您的 GitHub 地址中将 'tree' 替换为 'raw'。
    • 看来,如果您使用存储库的根目录,并在 url 中使用“raw”,正如@BrunoMedeiros 在他的回答中所建议的那样,更新站点工作正常。
    【解决方案4】:

    http://pages.github.com/

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

    【讨论】:

    • Github 页面不适合用于更新站点。请看下面我的回答。如果你的 jar 很小,那可能没问题,但总的来说,他们建议不要将二进制文件放在那里。
    【解决方案5】:

    不,这不可能了,下载 API has officially been deprecated

    来自 GitHub 博客:

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

    看到这个help article on distributing large binaries

    【讨论】:

      【解决方案6】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多