【问题标题】:Host private maven artifact in github repository在 github 存储库中托管私有 maven 工件
【发布时间】:2016-04-22 07:43:30
【问题描述】:

我正在使用以下解决方案 Hosting a Maven repository on github 在 github 上托管私有 maven 存储库

我已成功将 maven 工件部署到 mvn-repo 分支下的 github 存储库。

问题是我很难在其他项目中将此工件用作 maven 依赖项。我在依赖的 pom.xml 中添加了存储库设置

  <repository>
        <id>github</id>
        <name>{name}</name>
        <url>https://raw.github.com/{repo-owner}/{repo-name}/mvn-repo/</url>
        <releases>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>fail</checksumPolicy>
        </releases>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
        </snapshots>
    </repository>

我已经配置了settings.xml文件

<server>
   <id>github</id>
  <username>{github-user-name}</username>
  <password>{github-user-password}</password>
</server>

当我尝试安装项目时,我得到关于 artifact cannot be found 的错误,当我将 artifact github 存储库设置为公共存储库时,一切正常,所以显然这是一个身份验证问题。奇怪的是我使用相同的凭据在第一步中成功地将工件部署到同一个 github 存储库。

我还尝试通过从 github 生成访问令牌并在 settings.xml 中使用它来使用“个人访问令牌”概念,如下所示:

 <server>
  <id>github</id>
  <password>{personal_access_token}}</password>
</server>   

但是没有成功...所以基本上我已经成功在 github 存储库中创建了 maven 工件,它可以分发,但我需要它是私有存储库。

任何人都可以提供帮助,非常感谢您的回答。

【问题讨论】:

  • 也许使用jitpack 会更容易。

标签: java maven github private


【解决方案1】:

这不能单独使用 maven 完成,raw.github.com 在访问私有存储库时需要在 url 末尾有一个访问令牌,但是 maven 中没有提供此令牌的选项。

其他方式

为用户提供安装脚本

您可以为用户提供一种安装程序脚本,用于下载依赖项并将它们安装到他们的本地 maven 存储库。您可以使用以下方式在本地安装 jar:

mvn install:install-file -Dfile=<path-to-file> -DpomFile=<path-to-pomfile>

您的安装程序应该将其中一些命令捆绑在一起以获得您想要的。

相关:Guide to installing 3rd party JARs

托管您自己的 maven 依赖服务器

你不需要快速的计算机来托管 maven 项目的依赖项,我过去有一个 Raspberry PI,我使用带有 sendfile 选项的 nginx 来获得性能良好的静态文档服务器,请记住 maven 已针对本地进行了优化内容,它只下载一个文件并在剩余时间切换到其本地文件。

免责声明:我不隶属于 Raspberry PI 公司。

【讨论】:

    【解决方案2】:

    只需修改 github 存储库 url 格式如下:

     <repository>
        <id>github</id>
        <name>{name}</name>
        <url>https://github.com/{repo-owner}/{repo-name}/raw/mvn-repo/</url>
        <releases>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>fail</checksumPolicy>
        </releases>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
        </snapshots>
    </repository>
    

    谢谢!

    【讨论】:

      猜你喜欢
      • 2012-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-13
      • 2011-04-28
      • 2011-08-13
      • 2012-10-17
      • 1970-01-01
      相关资源
      最近更新 更多