从 GitHub 加载 Maven 依赖项 [重复]
Posted
技术标签:
【中文标题】从 GitHub 加载 Maven 依赖项 [重复]【英文标题】:Loading Maven dependencies from GitHub [duplicate] 【发布时间】:2013-12-08 07:42:58 【问题描述】:如何从其 GitHub 存储库(该库使用 Maven 作为构建系统)添加一个 Java 库作为我的 Maven 项目的依赖项?我可以在不下载和编译库的情况下这样做吗?
【问题讨论】:
这应该会有所帮助:***.com/q/8871056/1180621 这能回答你的问题吗? Can I use a GitHub project directly in Maven? 【参考方案1】:目前没有办法做到这一点,除非库的维护者提供了一种方法来做到这一点。
所以在库的标题页上应该是包含存储库地址的指令,例如:
<repositories>
<repository>
<id>YOUR-PROJECT-NAME-mvn-repo</id>
<url>https://raw.github.com/YOUR-USERNAME/YOUR-PROJECT-NAME/mvn-repo/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
还有一个依赖名:
<dependency>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
</dependency>
这意味着您项目的所有工件(包括您的依赖项)都将在此 repo 中搜索。
您还可以查看pom.xml
以检查是否有人努力将工件部署到远程存储库。通常情况下,关键字是 oss.sonatype.org 或 raw.github.com。
仅供参考,这是一种为您的 gihub 工件提供 repo 的方法:Hosting a Maven repository on github。
【讨论】:
很多库不提供这个,这样就没用了 @tribbloid 我认为他们中的大多数都提供存储库,不是吗?只是为了能够使用 Maven 自动部署? 这是关于如何对库供应商提供的部署进行逆向工程的简单说明。 raw.github.com 现在看起来已经过时了,所以必须有一些其他主机用于工件部署。要找出名称,您可以查看此库的pom.xml
并尝试通过其“地址”访问此工件【参考方案2】:
现在您可以使用 JitPack 从 GitHub 存储库导入 Java 库。 在你的 pom.xml 中:
-
添加存储库:
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
-
添加依赖项
<dependency>
<groupId>com.github.User</groupId>
<artifactId>Repo name</artifactId>
<version>Release tag</version>
</dependency>
之所以有效,是因为 JitPack 会检查代码并构建它。所以你最终会下载 jar。 如果项目没有 GitHub 版本,则可以使用提交 ID 作为版本。
【讨论】:
小记:如果贵公司使用Github Enterprise,则必须购买Jitpack Enterprise。 如果它不使用 Maven 作为其构建系统,比如https://github.com/mongodb/mongo-java-driver
,会怎样? Maven 不接受<groupId>com.github.mongodb</groupId>
。
它支持其他构建系统,如 Gradle/Sbt。 jitpack.io/#mongodb/mongo-java-driver
太棒了。【参考方案3】:
Jitpack 的另一个优点是,它在主页上有一个查找按钮。如果您键入 GitHub 存储库的 URL,它会显示源代码的不同提交,您可以选择您想要的提交/标记。 Jitpack 为您创建 pom 依赖项。
它变得非常简单。
【讨论】:
【参考方案4】:Github 现在支持包 https://help.github.com/en/github/managing-packages-with-github-packages/configuring-apache-maven-for-use-with-github-packages
您可以按照上面的步骤将Jar文件正确部署到github。
【讨论】:
以上是关于从 GitHub 加载 Maven 依赖项 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Sonatype Nexus 作为 Ivy 依赖项的镜像 [重复]