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