java - 在 github 存储库中托管私有(private) Maven Artifact

标签 java maven github private

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

我已经成功地将 Maven Artifact 部署到 mvn-repo 分支下的 github 存储库。

问题是我很难在其他项目中将此 Artifact 用作 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 的错误,当我将 Artifact github 存储库设置为公共(public)存储库时,一切正常,所以很明显这是一个身份验证问题。奇怪的是,我使用了相同的凭据,以便在第一步中成功地将 Artifact 部署到同一个 github 存储库。

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

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

但没有成功...所以基本上我已经完成了一半,我设法在 github 存储库中创建了可以分发的 maven Artifact ,但我需要它是私有(private)存储库。

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

最佳答案

这不能单独使用 maven 来完成,raw.github.com 在访问私有(private)存储库时期望在 url 末尾有一个访问 token ,但 maven 中没有提供此 token 的选项。

替代方法

为用户提供安装脚本

您可以为用户提供一种安装程序脚本,用于下载依赖项并将它们安装到他们的本地 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 公司。

关于java - 在 github 存储库中托管私有(private) Maven Artifact ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34832667/

相关文章:

java - Java 9 spring boot 应用程序的 maven 构建期间的 RuntimeException

git - 关于Git命令的困惑: git diff origin <branch> HEAD

java - 只需要熟悉 HTTPClient 的人检查一段代码

java - C++ 的 STL 队列在 Java 中的等价物是什么?

java - Spring 应用程序中 AplicationContext 架构错误

github - 仅从网络更新 github fork(换句话说,没有 GIT!)

node.js - 如何从另一个 Github 项目添加依赖项?

java - 通过sshj杀死一个进程

java - 如何将 JEditorPane 插入 JTable 单元格?

Android Lombok IntelliJ 集成