maven安装及配置讲解

maven安装及配置讲解Apache Maven 是一个很流行的软件项目管理和理解工具 它能够被用来构建和管理任何基于 java 的项目 主要有以下几个目标 简化构建过程 提供统一的构建系统 提供高质量的项目信息 鼓励更好的开发实践考虑到 maven 的流行度 本

欢迎大家来到IT世界,在知识的湖畔探索吧!

maven安装及配置讲解

Apache Maven是一个很流行的软件项目管理和理解工具,它能够被用来构建和管理任何基于java的项目,主要有以下几个目标:

  • • 简化构建过程
  • • 提供统一的构建系统
  • • 提供高质量的项目信息
  • • 鼓励更好的开发实践

考虑到maven的流行度,本篇就先从maven的安装和配置讲起。

1、安装maven

maven官网最新的版本是3.9.1,我们就以此版本为例进行讲解。

注:maven 3.9+以上的版本需要依赖JDK 8或者更高版本的JDK。

1.1 、下载maven

点击apache-maven-3.9.1-bin.zip进行下载,或者直接访问以下网址进行下载

https://dlcdn.apache.org/maven/maven-3/3.9.1/binaries/apache-maven-3.9.1-bin.zip

欢迎大家来到IT世界,在知识的湖畔探索吧!

1.2、解压文件

将刚才下载下来的apache-maven-3.9.1-bin.zip文件解压到我们常用的安装开发工具的目录,比如

D:\developer目录,那么maven的主目录就是D:\developer\apache-maven-3.9.1-bin

1.3、配置系统环境变量

(1)进入Windows系统的”高级系统设置”,点击右下角的“环境变量”,进入环境变量的维护页面

(2)编辑”系统变量”列表中的Path配置项,在编辑页面新增一条配置项的值,也即新安装的maven的bin目录的全路径名:D:\developer\apache-maven-3.9.1-bin\bin,然后点击确定保存。

(3)打开一个新的cmd命令行页面,执行下述命令

欢迎大家来到IT世界,在知识的湖畔探索吧!mvn -version

如果得到类似下面的响应输出,说明安装成功。

Apache Maven 3.9.1 (2efcdbffcfb2537d0cb4b4cc58f8) Maven home: D:\developer\apache-maven-3.9.1-bin\bin\.. Java version: 1.8.0_281, vendor: Oracle Corporation, runtime: D:\developer\Java\jdk1.8\jre Default locale: zh_CN, platform encoding: GBK OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

2、maven配置文件详解

我们先看一下官方给我们提供的settings.xml文件的格式,可以在maven安装目录下的conf目录下找到该文件。

欢迎大家来到IT世界,在知识的湖畔探索吧!<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"> <localRepository/> <interactiveMode/> <offline/> <pluginGroups/> <servers/> <mirrors/> <proxies/> <profiles/> <activeProfiles/> </settings>

我们挑其中常用的重要配置项来看下。

2.1、localRepository配置

localRepository配置项用来配置maven的本地仓库地址,简单说就是用来存储通过maven下载下来的各种jar包。如果我们的项目pom.xml文件依赖了某个jar包,默认会先从我们本地仓库去查找,查不到的请求下,再去请求外部仓库。

该配置的默认值是:

${user.home}/.m2/repository

${user.home}指用户的主目录,比如我的就是C:\Users\xt

如果我们想节省C盘的空间,想把jar包存储到其他磁盘,可以这么设置

<localRepository>D:/programs/.m2/repository</localRepository>

2.2、servers配置

该配置项主要是用来为各个远程仓库配置认证信息,比如访问远程仓库时需要提供用户名和密码信息,它的结构如下:

<servers> <server> <id>deploymentRepo</id> <username>repouser</username> <password>repopwd</password> </server> <server> <id>deploymentRepo2</id> <privateKey>/path/to/private/key</privateKey> <passphrase>ddddd</passphrase> </server> </servers>

结点下面可以有多个结点,其中server结点下的子结点释义如下:

  • • id,对应repository或mirror的id,用来指定该配置项是针对哪个仓库的,必填项
  • • username,访问仓库的用户名
  • • password,访问仓库的密码
  • • privateKey,访问仓库的私钥
  • • passphrase,访问仓库的口令,可选

其中username和password成对出现,privateKey和passphrase成对出现。两种认证方式不同,我们配置时只需要选取其中一种就可以。常用的就是配置用户名和密码。

2.3、mirrors配置

mirrors配置项主要是用来为远程仓库配置镜像站点,我们可以基于以下情况来考虑使用mirrors镜像配置。

  • • 分担远程仓库的访问压力,同时又不希望修改repoistory仓库的配置
  • • 用自己的内部仓库替换掉特定的仓库,比如替换掉central仓库

mirrors的结构如下:

<mirrors> <mirror> <id>nexus-aliyun</id> <name>Nexus aliyun</name> <mirrorOf>central</mirrorOf> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> </mirrors>

结点下面可以包含多个子结点,其中mirror结点下面的子结点释义如下:

  • • id,镜像仓库的id,要保证唯一,不能和mirrors和repositories下面的id相同,因为镜像仓库本质上也是仓库,下载jar包时,会根据此id去servers结点下面查找server结点配置的认证信息
  • • name,镜像仓库的名称,方便用户识别该仓库
  • • mirrorOf,需要做镜像的仓库的id值,也就是取repository的id值
  • • url,镜像仓库的地址

关于此段配置,我们一般会用来替换maven的central仓库,mirrorOf的值就写成central,url的值配置为阿里云maven仓库地址或者公司内网的maven仓库地址。

2.4、profiles配置

profiles配置项用来配置我们常用的仓库,而且可以对这些仓库进行分类,在特定的条件下使特定类别的仓库生效,当然也可以默认指定使用某些仓库。

注意:官方更推荐在pom.xml文件中定义profiles

profiles的结构如下:

 <profiles> <profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> </activation> <repositories> </repositories> <pluginRepositories> <pluginRepository> </pluginRepository> </pluginRepositories> </profile> <profile> <id>test</id> <activation> <activeByDefault>false</activeByDefault> </activation> <repositories> </repositories> <pluginRepositories> <pluginRepository> </pluginRepository> </pluginRepositories> </profile> </profiles>

结点下面可以有多个结点,我们就是通过profile结点对仓库进行分类。profile结点的子节点释义如下:

  • • id,标识profile,单个文件中的profile的id值要保证唯一,后续靠这个值来激活对应的profile
  • • activation,自动激活相关的配置,其中它的子节点activeByDefault配置为true,则默认激活当前的profile
  • • repositories,仓库列表配置
  • • pluginRepositories,插件仓库列表配置

repositories和pluginRepositories这两部分包含内容较多,我们分开来看

2.4.1、repositories配置

repositories用来配置各个仓库的信息。之所以有这样的设计,其中一个原因就是我们平时开发所需的jar包可能分散在不同的仓库里,由于仓库之间是独立的,如果把所有的包都维护在一个仓库,本身也会影响仓库的性能,所以这时就需要结合多个仓库来使用了。

repositories结构如下:

 <repositories> <repository> <id>dev</id> <name>开发仓库</name> <releases> <enabled>false</enabled> <updatePolicy>always</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>never</updatePolicy> </snapshots> <url>http://192.168.1.1/repository/dev</url> </repository> </repositories>

结点下面有多个repository结点,repository结点下面的子节点释义如下:

  • • id,仓库的id,需要全局唯一,也不能和mirror的id相同
  • • name,仓库的名称,随便起,只是方便我们识别仓库
  • • releases,发布版本的配置
  • • snapshots,快照版本的配置
  • • enabled,true或false,代表该仓库对指定类型(releases或snapshots)的版本的jar包是否有效,b比如releases下面的enabled如果是true,那么下载发布版本的jar包就可以使用到该仓库。
  • • updatePolicy,是指更新策略,alway代表每次下载jar包都从远程仓库下载并更新本地jar包;daliy是默认值,指每天下载jar包都会去远程下载并更新一次本地的jar包。never指的是只要本地有jar包,就一直使用本地的。针对snapshots的配置,我们一般会设置为always
  • • url,仓库的地址

2.4.2、pluginRepositories配置

pluginRepositories是指插件仓库,用来管理我们使用到maven插件的仓库。我们平时使用的jar包一般分两种,一类就是这种jar包需要被别的项目依赖,另一种jar包就是maven自身使用到的jar包,也叫插件。maven官方针对这两类jar包,就给出了pluginRepositories和repositories这两类的配置。而repositories就配置我们项目开发常用的彼此之间存在依赖的jar包所在的仓库。

pluginRepositories的结构如下:

 <pluginRepositories> <pluginRepository> <id>testPluginRepo</id> <name>测试插件仓库</name> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> <url>http://192.168.1.1/repository/testPlugin/</url> </pluginRepository> </pluginRepositories>

pluginRepositories结点下可以有多个pluginRepository结点,pluginRepository结点下的子节点的释义和repository的一样,此处就不再重复了。

2.5、activeProfiles配置

activeProfiles配置项用来指定哪些profile生效,它的结构如下:

<activeProfiles> <activeProfile>dev</activeProfile> </activeProfiles>

activeProfiles结点下面可以多个activeProfile结点,activeProfile对应的值就是profile的id。

结束语

本文先分享到这里,觉得有收获的朋友,可以关注我,或者进行分享或收藏,有疑惑的也可以来私聊评论,我会及时进行回复~

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/87432.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信