Maven修改本地仓库和镜像

工作以来,一直在用maven,也出现过一些比较奇怪的问题。

虽然只要花点时间,大部分问题都解决,但总感觉不踏实,所以稍微总结一下。

第一篇:当前博客

第二篇:结合具体案例分析:https://blog.csdn.net/qq_37855749/article/details/111048657

第三篇:以后时间补上,总结一下maven的构建流程以及基本命令。

为什么需要maven?

需求推动着技术的发展,maven的出现必然是为了解决一些问题。

至于这些问题是什么 ,我想做过传统项目的人应该都能体会到。每当需要一个jar包时,都得去官网找,然后导入。

甚至出现套娃现象,我需要A的jar包,但是A依赖于B这个jar包,B依赖于C这个jar包。。。。。。

后来上手maven后,就再也没遇到过这种事了。

当然,jar包管理只是maven一部分功能的体现,它的项目构建能力同样强大。

下载

https://maven.apache.org/download.cgi

如果想要全局使用mvn命令,则需要配置环境变量。

修改本地仓库和镜像

本地仓库,就是jar包从中央仓库(云端的)拉取下来后,存放的位置。

打开maven  conf文件夹中的settings.xml文件

默认是在C盘的一个隐藏文件夹里,但一般我们会改一下。

改成其他盘任意存在的文件夹

mirrors结点可以改镜像,我们改成阿里云的镜像

  <mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->

    <mirror>
      <id>aliyunmaven</id>
      <mirrorOf>*</mirrorOf>
      <name>阿里云公共仓库</name>
      <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
  </mirrors>

这是一个阿里提供的代理仓库,包含了maven的中央仓库。

如果你需要其他公开的仓库,可以去这个网站查查

https://maven.aliyun.com/mvn/guide

pom.xml文件分析

pom(Project Object Model),项目对象模型,是maven对于被管理项目的一个描述文件。

我们在开发过程中,一般之和它打交道。

我们先大致了解一下这些节点的基本作用,再通过一个实际案例详细说明。

官网上有一个二级节点的预览

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 
  <!-- The Basics -->
  <groupId>...</groupId>
  <artifactId>...</artifactId>
  <version>...</version>
  <packaging>...</packaging>
  <dependencies>...</dependencies>
  <parent>...</parent>
  <dependencyManagement>...</dependencyManagement>
  <modules>...</modules>
  <properties>...</properties>
 
  <!-- Build Settings -->
  <build>...</build>
  <reporting>...</reporting>
 
  <!-- More Project Information -->
  <name>...</name>
  <description>...</description>
  <url>...</url>
  <inceptionYear>...</inceptionYear>
  <licenses>...</licenses>
  <organization>...</organization>
  <developers>...</developers>
  <contributors>...</contributors>
 
  <!-- Environment Settings -->
  <issueManagement>...</issueManagement>
  <ciManagement>...</ciManagement>
  <mailingLists>...</mailingLists>
  <scm>...</scm>
  <prerequisites>...</prerequisites>
  <repositories>...</repositories>
  <pluginRepositories>...</pluginRepositories>
  <distributionManagement>...</distributionManagement>
  <profiles>...</profiles>
</project>
  • groupId、artifactId、version

组织名(公司名)、项目名称、版本。

这三个组合在一起,就是一个定位器,可以精确定位到一个全球唯一的项目。

  • packaging

默认情况下是jar包,

如果是web项目,如SSM,就需要打成war包。

SpringBoot两者都可以。

  • dependencies

可以在这个节点里面配置dependency,

例如

<dependencies>

    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>3.4.0</version>
    </dependency>

</dependencies>
  • parent

当几个工程项目的依赖都差不多时,我们可以建一个父项目

将打包模式packaging设置为pom。

子项目通过parent引入父项目的配置。

  • properties

很常用,子节点property。通过变量的形式,指定依赖版本。比较灵活。

  • build

配置插件的地方。

这样看标签的含义比较抽象,所以补充了一篇,通过具体的项目案例来分析每个标签的作用,由于篇幅原因,拆成了两篇

地址:

https://blog.csdn.net/qq_37855749/article/details/111048657

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值