使用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在你配置的多个仓库中依次下载依赖,因此如果配置的仓库太多的话,下载速度会受到影响。

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

参考链接

目录
相关文章
|
8天前
|
Java Linux Maven
Maven 仓库
Maven 仓库是管理项目依赖、插件及构建输出(构件)的位置。分为本地、中央和远程三种。本地仓库默认位于用户目录 `.m2/repository/`,可配置至其他路径,如 `C:/MyLocalRepository`。Maven 首次运行时创建本地仓库,并按需从中获取或下载构件。中央仓库由 Maven 社区维护,包含丰富的开源 Java 构件及其相关信息,可通过 `http://search.maven.org/#browse` 访问,无需额外配置,但需网络连接。
怎样在GitHub上建立仓库、以及怎样实现分支代码的合并。保姆级别的教程
这篇文章是一份详细的GitHub使用教程,介绍了如何在GitHub上创建仓库、创建分支、编辑和发布更改内容、发起拉取请求以及合并分支的操作步骤。
怎样在GitHub上建立仓库、以及怎样实现分支代码的合并。保姆级别的教程
|
6天前
|
存储 API 网络架构
GitHub——通过接口获取仓库下的最新版本
GitHub——通过接口获取仓库下的最新版本
8 1
|
6天前
|
存储 Java Linux
Maven 仓库
Maven仓库是管理项目依赖、插件及构建输出(如JAR、WAR等)的存储位置。分为本地、中央和远程三种。本地仓库默认位于用户家目录`.m2/repository`,可配置至其他路径;中央仓库由Maven社区维护,包含丰富开源库,无需配置但需网络访问。远程仓库则介于两者之间。通过合理利用这些仓库,可以高效管理项目依赖。
|
10天前
|
存储 Java Linux
Maven 仓库
Maven仓库是管理项目依赖、插件及构建输出(如JAR、WAR文件)的存储位置。分为本地、中央和远程三种。本地仓库默认位于用户家目录`.m2/repository`,可配置至其他路径;中央仓库由Maven社区维护,包含广泛使用的开源库,无需配置但需网络访问。远程仓库则介于两者之间。通过Maven,开发者可自动获取或上传构件,简化了依赖管理。
|
7天前
|
Java Linux Maven
Maven 仓库
Maven 仓库是管理项目依赖、插件及构建输出(构件)的位置。分为本地、中央和远程三种。本地仓库默认位于 `%USER_HOME%/.m2/repository/`,首次执行 Maven 命令时创建,可配置自定义路径。中央仓库由 Maven 社区维护,包含丰富的开源 Java 构件及元数据,无需配置但需网络访问,可通过 `http://search.maven.org/#browse` 浏览。远程仓库则介于两者之间,用于存放特定组织所需的构件。
|
12天前
|
Java Linux Maven
Maven 仓库
Maven 仓库是管理项目依赖、插件及构建输出(如 JAR、WAR 和 POM 文件)的地方。分为本地、中央和远程三种。本地仓库默认位于 `%USER_HOME%/.m2/repository/`,首次运行 Maven 自动创建,可重新配置。中央仓库由 Maven 社区维护,包含丰富的开源组件及其元数据,无需配置但需网络访问,可通过 `http://search.maven.org/#browse` 浏览。远程仓库用于获取不在本地或中央仓库中的构件。
|
14天前
|
存储 缓存 Java
Maven 仓库
Maven 仓库是存储项目依赖、插件及构建输出(如 JAR、WAR 和 POM 文件)的地方。分为本地、远程与中央仓库。本地仓库默认位于 `%USER_HOME%/.m2/repository/`,用于缓存构件;中央仓库由社区维护,包含丰富的开源 Java 构件及其相关信息,无需配置但需联网访问;远程仓库则介于两者之间,用于企业内部共享资源。通过合理配置仓库,Maven 可高效管理项目依赖。
|
18天前
|
缓存 Java Linux
Maven 仓库
Maven仓库管理项目依赖,分为本地、中央和远程仓库。本地仓库默认位于`%USER_HOME%/.m2/repository/`, 可通过`settings.xml`文件重定位。中央仓库由Maven社区维护,包含大量常用库及元数据,无需配置但需网络访问。可浏览中央仓库内容于 http://search.maven.org/#browse. 远程仓库用于下载未缓存的依赖到本地仓库。
|
16天前
|
存储 缓存 Java
Maven 仓库
Maven 仓库是存储项目依赖、插件及构建输出(如 JAR、WAR 和 POM 文件)的地方。分为本地、远程与中央仓库。本地仓库默认位于用户目录下的 `.m2/repository`,可重新配置;首次运行 Maven 命令时创建,用于缓存构件。中央仓库由社区维护,包含广泛使用的开源 Java 构件及其相关信息,无需配置但需网络访问。远程仓库则介于两者之间,由组织或开发者自行设置。通过这些仓库,Maven 实现了对项目依赖的有效管理和版本控制。

推荐镜像

更多