java – 在github存储库中托管私有maven工件

我使用以下解决方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>

当我尝试安装项目时,我无法找到工件上的错误,当我将工件github存储库设置为公共存储库时,一切都很好,所以很明显这是一个身份验证问题.奇怪的是我使用相同的凭据,以便在第一步中将工件部署到同一个github存储库并成功.

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

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

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

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

解决方法

这不能单独使用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,我使用Nginx和sendfile选项来获得性能良好的静态文档服务器,请记住maven是针对本地内容优化的,它只下载一个文件并在剩余时间内切换到其本地文件.

免责声明:我不隶属于RaspBerry PI公司.

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...