使用Github搭建Maven私有远程仓库

简介: 使用Github搭建Maven私有远程仓库

[外链图片转存中...(img-B5YhHCsu-1676540278080)]

目录


为了避免重复造轮子,我们可以在项目中引入依赖,使用现有的成熟解决方案。

也许你不满足于“借”轮子,还想自己造轮子,这个时候你就可以把自己的代码放入公共的仓库,供大家使用。

但使用公共的依赖仓库很麻烦,幸好github为我们提供了一种简便的大家自己的公共依赖仓库的方式。

[外链图片转存中...(img-SFJIaunf-1676540278083)]

自从今年Github支持免费的个人私有仓库以后,github越来越成为自己日常学习、写作和开发必不可少的工具了。

之前因为github的私有仓库收费,不得已使用了gitee和bitbucket等工具。事实证明,这个世界,只需要一个Github。

下面就一步步带你搭建一下自己的Maven公共仓库。

本地deploy

在自己本地创建一个目录,来放自己deploy的文件,然后在自己的项目目录下执行如下Maven命令:

mvn deploy -DaltDeploymentRepository=ijiangtao-net-repo::default::file:/1tool/develop/maven/repository/ijiangtao-net-repo/repository

然后你会看到自己放本地deploy的内容目录下面已经生成好了依赖所需的所有文件。

这里需要特别说明的是这3个文件:

  • maven-metadata.xml
  • maven-metadata.xml.md5
  • maven-metadata.xml.sha1

其中md5, sha1是校验文件,它们用来保证这个metadata文件的完整性。

Maven在编绎项目时,会先尝试请求maven-metadata.xml,如果没有找到,则会尝试请求到jar文件,在下载jar文件时也会尝试下载jar的md5, sha1文件。

下面就是我本地deploy生成的文件:

maven-metadata.xml
maven-metadata.xml.md5
maven-metadata.xml.sha1
tao-util-core-1.1.01.01-20190420.080520-1.jar
tao-util-core-1.1.01.01-20190420.080520-1.jar.md5
tao-util-core-1.1.01.01-20190420.080520-1.jar.sha1
tao-util-core-1.1.01.01-20190420.080520-1.pom
tao-util-core-1.1.01.01-20190420.080520-1.pom.md5
tao-util-core-1.1.01.01-20190420.080520-1.pom.sha1

这个maven-metadata.xml文件很重要,如果没有这个文件来指明最新的jar版本,那么即使远程仓库里的jar更新了版本,本地maven编绎时用上-U参数,也不会拉取到最新的jar。

所以并不能简单地把jar包放到github上就完事了,一定要先在本地deploy,生成maven-metadata.xml文件,并上传到github上。

上传到github

这一步比较简单,只要用过github的都没什么难度。

首先在GitHub上创建仓库,然后把本地deploy的文件所属的目录设置为git仓库,最后push到远程即可。

项目配置依赖

除了要把你的依赖坐标放到dependencies标签中之外,还需要在pom.xml中指定你的repositories的url。

<dependency>
    <groupId>net.ijiangtao.tech.util</groupId>
    <artifactId>tao-util-core</artifactId>
    <version>1.1.01.01-SNAPSHOT</version>
</dependency>
<repositories>
    <repository>
        <!-- A unique identifier for a repository. -->
        <id>ijiangtao-net-repo</id>
        <!--Human readable name of the repository. -->
        <name>ijiangtao.net repository</name>
        <url>https://raw.githubusercontent.com/ijiangtao/ijiangtao-net-repo/master/repository</url>
        <releases>
            <enabled>true</enabled>
            <checksumPolicy>warn</checksumPolicy>
        </releases>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
        </snapshots>
    </repository>
</repositories>

这样你就可以下载远程仓库的依赖了。

当你执行mvn install -U的时候,会看到下面的Downloading提示:

Downloading from alimaven: http://maven.aliyun.com/nexus/content/groups/public/net/ijiangtao/tech/util/tao-util/1.1.01.01-SNAPSHOT/maven-metadata.xml
Downloading from xxxx: https://github.com/xxxx/xxxx-repo/raw/master/releases/net/ijiangtao/tech/util/tao-util/1.1.01.01-SNAPSHOT/maven-metadata.xml
Downloading from yyyy: http://yyyy.yyyy.cn/nexus/content/groups/public/net/ijiangtao/tech/util/tao-util/1.1.01.01-SNAPSHOT/maven-metadata.xml
Downloading from sonatype: https://oss.sonatype.org/content/repositories/snapshots/net/ijiangtao/tech/util/tao-util/1.1.01.01-SNAPSHOT/maven-metadata.xml
Downloading from nexus-aliyun: http://maven.aliyun.com/nexus/content/groups/public/net/ijiangtao/tech/util/tao-util/1.1.01.01-SNAPSHOT/maven-metadata.xml
Downloading from ijiangtao-net-repo: https://raw.githubusercontent.com/ijiangtao/ijiangtao-net-repo/master/repository/net/ijiangtao/tech/util/tao-util/1.1.01.01-SNAPSHOT/maven-metadata.xml

这是Maven在你配置的多个仓库中依次下载依赖,因此如果配置的仓库太多的话,下载速度会受到影响。

上文中提到的仓库地址和示例代码,可以访问如下两个仓库地址:

参考链接

目录
相关文章
|
开发工具 git 开发者
2024最简七步完成 将本地项目提交到github仓库方法
该文章提供了一个简洁的七步教程,指导用户如何将本地项目提交到GitHub仓库。
2024最简七步完成 将本地项目提交到github仓库方法
|
9月前
|
开发工具 git C++
【够用就好002】外行第一次发布github项目仓库
#deepseek#自学 记录外行学习代码的历程 今天是上传自己的工具代码到github仓库,一直以来是伸手党克隆别人的项目,今天在deepseek的辅导下上传自己的内容。
|
10月前
|
开发工具 git
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
657 69
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
|
5月前
|
Linux 网络安全 开发工具
在Linux下配置gitee与Github的远程仓库
注意,git push后,是输入你的账号与密码。这个步骤可以通过特殊设置省去,但是一开始还是不要太省。
315 0
|
7月前
|
文字识别 网络协议 开发工具
GitHub封锁?推荐5个国产的Git仓库替代平台
近日,GitHub对中国区IP的部分限制引发了广泛关注。未登录用户被拒,已登录用户功能受限,南北网络环境差异更显“内卷”。为应对这一挑战,本文推荐了多个国产Git平台:Gitee(码云)、GitCode(CSDN旗下)、CODING(腾讯系)、CodeUP(阿里云支持)及微信代码管理工具。这些平台功能全面、稳定性强,是开发者迁移项目的理想选择。通过同步代码、配置CI/CD流水线等简单步骤,可确保项目平稳过渡。此次事件提醒我们,掌握核心技能与支持国产平台同样重要!
5106 11
|
8月前
|
开发工具 git
vscode推送项目到github仓库故障解决1
本文介绍了如何优雅解决本地仓库与远程仓库历史记录不一致的问题,并提供避免未来问题的最佳实践。核心在于理解问题根源(如历史记录差异和常见原因),采用推荐的解决方案(先本地初始化再关联远程仓库),并遵循一致的工作流程、团队协作规范及熟悉 Git 命令。通过强制推送或合并无关历史记录等方式处理现有冲突,同时养成良好习惯以预防类似问题。
|
10月前
|
Devops Shell 网络安全
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
476 16
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
|
敏捷开发 Java 持续交付
阿里云云效产品使用合集之maven仓库是否可以代替自建的Nexus
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
PeterCat:一键创建开源项目 AI 问答机器人,自动抓取 GitHub 仓库信息、文档和 issue 等构建知识库
PeterCat 是一款开源的智能答疑机器人,能够自动抓取 GitHub 上的文档和 issue 构建知识库,提供对话式答疑服务,帮助开发者和社区维护者高效解决技术问题。
733 7
PeterCat:一键创建开源项目 AI 问答机器人,自动抓取 GitHub 仓库信息、文档和 issue 等构建知识库
|
11月前
|
人工智能 前端开发 Linux
github是怎么用的,如何下载仓库
github是怎么用的,如何下载仓库

热门文章

最新文章

推荐镜像

更多
下一篇
oss云网关配置