从 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.orgraw.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 不接受&lt;groupId&gt;com.github.mongodb&lt;/groupId&gt; 它支持其他构建系统,如 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 依赖项的镜像 [重复]

在maven项目中导入外部jar而不创建依赖项[重复]

如何在 Github Actions 工作流中从 Github 包访问 Maven 依赖项?

spring boot应用程序作为maven依赖项[重复]

可以使Maven构建包含依赖项中的.class文件[重复]

尝试将 ojdbc7 作为 maven 依赖项安装时出现问题 [重复]