详解Maven仓库之本地仓库、远程仓库

详解Maven仓库之本地仓库、远程仓库

在 Maven 工程中使用 Maven 仓库是非常常见的一件事,本地仓库是指位于本地计算机中的 Maven 仓库,而远程仓库是指位于远程服务器上的 Maven 仓库。

本地仓库

本地仓库的作用

本地仓库是 Maven 的一个重要概念,Maven 在构建 Java 项目时需要依赖很多的 Jar 包,本地仓库就很好的解决了 Jar 包的管理问题。

本地仓库的位置

本地仓库默认位于用户目录下的 .m2 目录下,可以通过修改 settings.xml 文件来改变本地仓库的位置。在 settings.xml 文件中可以使用如下代码来修改本地仓库位置:

<settings>
  <localRepository>/path/to/local/repo</localRepository>
</settings>

本地仓库文件结构

本地仓库的文件结构如下:

.local_repository/
    ├─com/
    │  └─example/
    │      └─example/
    │          └─1.0/
    │              ├─example-1.0.jar
    │              ├─example-1.0.pom
    │              ├─example-1.0-sources.jar
    │              ├─example-1.0-javadoc.jar
    │              └─_remote.repositories
    ├─org/
    │  └─apache/
    │      └─maven/
    │          ├─apache-maven/
    │          │  └─3.6.0/
    │          │      ├─apache-maven-3.6.0-bin.zip
    │          │      ├─apache-maven-3.6.0-src.zip
    │          │      ├─apache-maven-3.6.0-bin.tar.gz
    │          │      ├─apache-maven-3.6.0-src.tar.gz
    │          │      └─_remote.repositories
    │          └─plugins/
    │              ├─maven-compiler-plugin/
    │              │  └─3.5.1/
    │              │      ├─maven-compiler-plugin-3.5.1.jar
    │              │      ├─maven-compiler-plugin-3.5.1.pom
    │              │      └─_remote.repositories
    │              └─maven-surefire-plugin/
    │                  └─2.22.0/
    │                      ├─maven-surefire-plugin-2.22.0.jar
    │                      ├─maven-surefire-plugin-2.22.0.pom
    │                      └─_remote.repositories
    ...

本地仓库中的文件结构中默认按照 Maven 坐标(groupId、artifactId、version)来进行存储。

远程仓库

远程仓库的作用

在进行开发时,我们会遇到一些第三方库,这些库并没有在本地仓库中存在,此时我们就需要借助第三方仓库。在 Maven 中,第三方仓库就表现为远程仓库。远程仓库既可以是公共的,也可以是私有的。

远程仓库的设置

settings.xml 文件中可以使用如下代码来添加远程仓库:

<settings>
  ...
  <repositories>
    <repository>
      <id>central</id>
      <url>http://central</url>
    </repository>
  </repositories>
  ...
</settings>

其中,id 是远程仓库的标识符,url 是远程仓库的地址。

远程仓库中心

Maven 中心仓库就是一个公共的远程仓库,它是 Maven 中心仓库群的主要仓库。在 Maven 应用中,只要你的代码中依赖的 Jar 包在 Maven 中心仓库中发布,那么就可以通过 Maven 自动下载并且自动管理了,所以在设置远程仓库时推荐添加 Maven 中心仓库:

<settings>
  <mirrors>
    <mirror>
      <id>aliyun-maven</id>
      <name>aliyun maven</name>
      <url>https://maven.aliyun.com/repository/central</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
      <id>develop</id>
      <repositories>
        <repository>
          <id>central</id>
          <url>https://maven.aliyun.com/repository/central</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>https://maven.aliyun.com/repository/central</url>
        </pluginRepository>
      </pluginRepositories>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>develop</activeProfile>
  </activeProfiles>
</settings>

代码中增加一个依赖:

<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
  </dependency>
</dependencies>

使用 mvn clean install 命令进行构建,可以在本地仓库中看到 junit 的 Jar 包,此时 Maven 就自动从远程仓库中下载了 junit Jar 包,因为 Maven 默认会把中心仓库地址作为远程仓库去下载 Jar 包和 POM 文件。

另外,当我们需要向远程仓库发布自己的 Jar 包时,需要在 pom.xml 文件中添加如下配置内容:

<distributionManagement>
  <repository>
    <id>repo</id>
    <url>http://example.com/repository/</url> <!-- 远程仓库地址 -->
  </repository>
</distributionManagement>

此时在执行 mvn deploy 命令时就会将文件发布到指定的远程仓库中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Maven仓库之本地仓库、远程仓库 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • java实现将字符串中首字母转换成大写,其它全部转换成小写的方法示例

    要实现将字符串中首字母转换成大写,其它全部转换成小写,可以采用如下两种方法。 方法一:使用String的toUpperCase和toLowerCase方法 首先先将字符串全部转换成小写,这样后面才能将首字母转换成大写 然后取出字符串的第一个字符,将其转换成大写,这样就实现了将首字母转换成大写 最后将第一步转换成小写的部分和第二步转换成大写的部分拼接起来,就实…

    Java 2023年5月27日
    00
  • 从Java的jar文件中读取数据的方法

    从Java的jar文件中读取数据有多种方法,这里提供两个示例: 1. 使用Java自带的类库 Java中有自带的读取jar包中文件的方法,可以使用java.util.jar.JarFile类,在该类中提供了多个方法可以读取jar文件中的内容,例如下面的示例代码: import java.io.IOException; import java.io.Input…

    Java 2023年5月20日
    00
  • spring boot的maven配置依赖详解

    下面我将为你讲解“springboot的maven配置依赖详解”的完整攻略,包括以下内容: Maven介绍 Spring Boot Maven依赖配置详解 示例:添加Web依赖 示例:添加数据库依赖 1. Maven介绍 Maven是一个项目管理和构建自动化工具,它可以帮助Java项目进行构建、依赖管理和发布。Maven通过一组规范来描述项目的结构和依赖,并…

    Java 2023年5月15日
    00
  • spring boot项目使用@JsonFormat失效问题的解决

    问题描述: 在Spring Boot项目中,使用@JsonFormat注解时,时间格式化不起作用,导致返回的时间格式不符合要求。如何解决这一问题? 解决方案: 引入依赖 首先,在项目的pom.xml文件中,引入以下依赖: <dependency> <groupId>com.fasterxml.jackson.datatype</…

    Java 2023年5月26日
    00
  • Spring Data JPA 之 JpaRepository的使用

    下面将为您详细讲解Spring Data JPA之JpaRepository的使用攻略。 什么是JpaRepository? JpaRepository是Spring Data JPA提供的一个接口,它继承自PagingAndSortingRepository接口,同时它还继承了CrudRepository接口,提供了一些与业务相关的方法,如save、del…

    Java 2023年5月20日
    00
  • shell脚本监控MySQL服务是否正常

    下面就详细说明如何编写一个shell脚本来监控MySQL服务是否正常。 1. 编写脚本 首先可以使用vim等编辑器创建一个名为mysql_monitor.sh的文件,并在开头添加如下内容: #!/bin/bash #指明使用bash解释器 MYSQL=`which mysql` #获取mysql命令路径 MYSQL_CONF=/etc/my.cnf #mys…

    Java 2023年6月15日
    00
  • Java设计模式之java策略模式详解

    Java设计模式之Java策略模式详解 什么是Java策略模式? Java策略模式是一种行为型设计模式,它定义了算法族,即一组具有相同目的和不同实现的算法,让它们之间可以相互替换。这个模式让算法的变化独立于使用算法的客户端,从而实现算法行为的变化而无需更改使用算法的客户端。 Java策略模式的三个角色 Java策略模式一般涉及到如下三个角色: Context…

    Java 2023年5月19日
    00
  • Java自定义异常简单示例

    Java自定义异常是Java语言的一个重要特性,支持用户自定义异常类型来满足特定的业务需求,并通过异常处理机制帮助程序员提高代码的可读性和可维护性。本文将介绍Java自定义异常的简单示例,帮助读者了解Java自定义异常的基本使用方法和常见案例。 为什么需要自定义异常? Java语言支持多种异常类型,如IllegalArgumentException、Null…

    Java 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部