在java开发中很多项目中会使用maven构建项目,在使用的过程中也遇到了不少的问题,现对maven的一些常用使用方法、设置以及易出现问题的地方做一个总结。
一、基础配置
- maven的默认配置文件为settings.xml,位置为
/maven(maven安装目录)/conf/settings.xml
- 配置maven本地仓库位置:
windos中maven仓库的默认位置为
${user.home}/.m2/repository
如果自定义maven仓库的位置,只需要在配置文件中加上
<localRepository>E:\maven\repository</localRepository>
这样通过maven引入的jar包就都会下载到我们设置的那个位置了。 - 替换maven中央仓库:
因为国内使用默认的中央仓库,下载速度会比较慢,所以我们可以配置国内的中央仓库,下载jar包的速度就会更快一些。
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<mirror>
<id>ibiblio</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
</mirror>
<mirror>
<id>jboss-public-repository-group</id>
<mirrorOf>central</mirrorOf>
<name>JBoss Public Repository Group</name>
<url>http://repository.jboss.org/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>http://repo1.maven.org/maven2/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
</mirrors>
上面配置了多个maven中央仓库,一个<mirror></mirror>标签为一个仓库。我上面的配置首先会去阿里的中央仓库下载,当阿里的仓库无法连接时就会连接其它的仓库。
- 指定jdk版本:
<profiles>
<profile>
<id>jdk11</id>
<activation>
<jdk>11</jdk>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.compilerVersion>11</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
我使用的jdk11,这里将maven的jdk版本设置为11
二、引入本地jar包
有些jar包中央仓库没有,不能直接下载,这时候就需要自己将jar包引入到本地仓库
- 通过命令引入
mvn install:install-file -Dfile=ojdbc8.jar -DgroupId=ojdbc -DartifactId=ojdbc -Dversion=8.0 -Dpackaging=jar
在待引入jar包同目录下执行上面命令,执行后出现BUILD SUCCESS,表示引入成功。
然后pom.xml中添加如下依赖就可以将jar包引入项目了
<dependency>
<groupId>ojdbc</groupId>
<artifactId>ojdbc</artifactId>
<version>8.0</version>
</dependency>
通过命令引入jar包的位置为conf文件下的配置文件settings.xml中配置的仓库位置
- 直接复制jar包的整体文件
jar包文件
mysql\mysql-connector-java\5.1.38
为jar包的目录结构,项目添加依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
图中为我本地仓库文件下,mysql这个文件夹下的所有就是mysql驱动的整体文件。
已经有了整体结构的jar包就可以直接复制到我们指定的本地仓库。有些jar包不能直接通过命令方式引入就可以通过这种方式引入,后面会说到的项目指定maven本地仓库也会用到这种方式。
三、idea中配置maven
idea中点File->Settings,然后在搜索框中搜索maven,maven设置就出来了。
idea中maven设置
- 在idea中我们主要配置三个地方,图中d:/apache-maven-3.6.0为我的maven本地安装目录,第二个红框中设置的是本项目使用的maven配置文件,第三个红框设置本地的maven仓库。设置好之后点应用就可以了。可能会存在没有刷新,配置不生效的问题,可以刷新一下项目、重新打开idea等方法。
- 为了防止jar包冲突,可以不同的项目使用不同的配置文件及maven本地仓库。
- 新建配置文件,可以直接复制原来的配置文件,再修改文件名,文件位置无要求,建议在conf文件下建一个文件夹,然后新建的配置文件都放在那个文件下面。
- 新建配置文件中的本地仓库
- 在idea中配置项目使用的maven配置
注意:使用命令引入本地jar包的位置为conf文件下settings.xml文件中配置的本地maven仓库,项目使用的仓库是其它仓库的话就要从引入jar包的那个库中将待引入的jar包的文件整体复制到项目使用的仓库中
四、idea中使用maven的常用功能
- 在pom.xml文件上面单机鼠标右键,然后选点Maven->Reimport刷新项目
-
打jar包
maven打jar包
clean为清空jar包,install为打jar包,打好的jar包在项目的target下面
五、maven常见问题解决办法
- jar包冲突,无法引入jar包
解决办法:找到本地仓库中jar包的位置,删除jar包对应的文件,刷新项目,重新引入jar包。本地仓库的位置idea中在maven设置中可以看到。 - clean失败,在本地文件中删除target文件,再clean。
网友评论