1、maven 仓库的结构

maven 仓库的结构可以通过打开本地仓库查看,一般在 ~/.m2 目录下。

 


gitee maven gitee maven仓库_gitee maven

maven 仓库结构

示例中 maven 仓库根目录为 repository,alipay.alipay-trade-sdk 为包名,2.0.0 为版本号。

实际上只要是能够远程访问的地址,并且能按 "/包名/.../版本号/maven结构文件" 返回数据的都可以用作 maven 仓库。

2、使用 github 或者 gitee(码云)当作 maven 仓库的途径

github 有专门的插件可以实现这个功能,码云的 api 与 github 不同,目前没有找到有大神实现这种插件。我需要找到一种通用的方法。

如 这位博主 所做,他是把项目的远程仓库目录指定到本地环境,然后将本地环境直接提交到码云用作 maven 仓库。

本质上是把本地仓库,按需提交到 git 中,下载时再特殊配置一下就好。

git 是用于代码管理的,直接将代码与发行的 jar 包放在一起,不是更好吗?

3、将当前 git 项目与 maven 仓库合二为一

  • 在 pom.xml 中指定项目信息及打包方式。
<groupId>cn.sd.jrz</groupId>
    <artifactId>JTool</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>JTool Maven Jar</name>

关键参数为 groupId、artifactId、version,这三个唯一确定一个 maven 依赖包。

packaging 参数指定了打为 jar 包。

  • 将远程仓库目录配置到本项目中

在与 <dependencies> 标签平级的地方添加

<distributionManagement>
        <repository>
            <id>local-maven</id>
            <url>file:${project.basedir}/release</url>
        </repository>
    </distributionManagement>

配置完成后,执行 maven 的 deploy 方法将会在当前工程目录下生成 release 目录,里面就是 maven 仓库。

  • 将 release 添加到 git 项目中,并提交到远程 git 仓库,如 github 或 gitee
  • 在 git 平台文件页面中,进入 release 目录,并记录下其路径。

例如码云的路径:https://gitee.com/scrambled_egg_with_eek/JTool/raw/master/release

4、第三方工程引用位于 git 仓库中的 maven 依赖

  • 在项目中配置仓库属性,也就是码云路径,与 <dependencies> 标签平级
<repositories>
        <repository>
            <id>gitee-maven</id>
            <url>https://gitee.com/scrambled_egg_with_eek/JTool/raw/master/release</url>
        </repository>
    </repositories>
  • 在 <dependencies> 标签中添加依赖
<dependency>
            <artifactId>JTool</artifactId>
            <groupId>cn.sd.jrz</groupId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
  • 重新导入一下 maven 即可

5、注意事项

  1. 以上步骤默认是 public 访问权限仓库,如果是 private 仓库,需要在本地 setting.xml 文件中配置仓库的用户名和密码
  2. 需要删除本地仓库中的代码才能进行测试,或者直接使用第二台电脑
  3. 当前项目的 jar 包就在当前项目的 release 目录下固然不错,但也导致了每引入一个此类型的 jar 包,都需要重新配置一个仓库
  4. 查看目录时,可以先进入 release 目录中,打开一个文本文件,再点击原始数据,从浏览器的地址中可以截取。