Maven的pom.xml导包常见问题

前言

虽说在开发中用 Maven 的 pom.xml 文件确实提升了效率,但是有时候还是出现各种各样的错误,这里说一下我平时经常遇到的几个问题

关于Maven的配置文件settings.xml

settings.xml 中包含了一些Maven配置的内容,比如资源的下载位置、配置镜像等。
如何找到settings.xml?

  • ① 去路径 xxxUser/apache-maven-3.6.3/conf/settings.xml下找
  • ② 如果你用的是IDEA,可以鼠标右键 -> Maven -> Open ‘settings.xml’,如下:
    在这里插入图片描述

Maven下载包存放位置

从maven中心仓库下载到本地的jar包的默认存放在当前登录系统的用户目录下如xxxUser/.m2/repository,如果想修改这个位置,可以在 settings.xml 的 <localRepository> 标签下进行修改,如:

<localRepository>/Users/superfarr/mavenRepository</localRepository>

添加Maven镜像

当你在pom.xml文件中添加依赖时,Maven是默认从maven官网上下载的,由于是国外的网站,下载速度比较慢,如果想提升下载速度,可以在 settings.xml 中设置阿里云或华为云的镜像,找到 <mirrors> 标签
添加阿里云/华为云镜像:

<mirrors>
    <!--阿里云镜像-->
    <mirror>-->
      	<id>nexus-public-snapshots</id>
      	<mirrorOf>public-snapshots</mirrorOf>
      	<url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url>
    </mirror>

	<!--华为云镜像-->
    <mirror>
      	<id>huaweicloud</id>
      	<mirrorOf>central</mirrorOf>
      	<name>huaweicloud maven</name>
      	<url>https://mirrors.huaweicloud.com/repository/maven/</url>
    </mirror>
</mirrors>

此外,当出现包处理不了,很可能是因为镜像的问题,因为本机上用的是阿里或华为的镜像,两者资源不同,有些资源也是这两个镜像没有的,有时候切换一下或许可以(切换就是把一个注释掉即可),或者把两个都注释掉,这样就会默认从官网上下载。

Maven是如何搜索pom中的依赖的?

Maven项目的 pom.xml 文件中的依赖,都是先从本地的Maven仓库搜寻,如果找不到,再去寻址下载。这里讲一下,它是如何搜索本地仓库的。

默认是在您当前用户名下的.m2的repository文件夹下,依据pom.xml提供的信息进行搜寻。

例如:

<dependency>
    <groupId>com.sina</groupId>
    <artifactId>java-bloomfilter</artifactId>
    <version>1.0</version>
</dependency>
  • 最终认定路径是:xxxUser/.m2/repository/com/sina/java-bloomfilter/1.0

pom 引入二方包的问题

什么是二方包可以自己去搜一下,简单来说就是自己的一个项目依赖另一个项目,然后比如将另一个项目打包,然后在这个项目中引入另一个包的依赖。这里讲一下当导入自己编译的 jar 包时出现的问题…

自己的项目打包的时候会默认将其放在对应的文件夹下,比如名为mango-common的项目,该项目的包结构为com.hory.mango-common,则打包后在本地的路径为:
mavenRepository/com/hory/mango-common/0.0.1-SNAPSHOT

这时候在 pom 中引入依赖的时候应该如下:

<dependency>
    <groupId>com.hory</groupId>
    <artifactId>mango-common</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

如果在pom中导入了依赖还是报错,就自己手动导吧:

File–>Project Stracture–>Modules–>Dependencies–> + -->JARs or Directories–> superfarr/mavenRepository/com/hory/mango-common

导入mango-common整个文件夹即可!

如果还不行,试着将本地的包删除重新编译一下,然后重新在pom导入一下应该就可以了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值