在Windows环境下安装Maven

在Windows环境下安装Maven

Maven是一个项目架包管理工具,其核心思想是:约定大于配置

安装Maven之前需要安装Java,配置Java环境变量

下载

Maven官网下载网址:https://maven.apache.org/download.cgi

下载编译好的压缩包,解压到对应路径下即可。这里下载的是之前的稳定版本:apache-maven-3.8.8-bin.zip
如果想下载其他版本可以从Other Releases下的网址中下载(新版本maven与旧版本IDEA不兼容)

配置环境变量

配置maven系统变量

M2_HOME       E:\environment\apache-maven-3.8.8\bin
MAVEN_HOME    E:\environment\apache-maven-3.8.8

配置Path变量值

%MAVEN_HOME%\bin

检验是否安装成功

打开命令行输入指令:mvn -version

若显示版本,则安装成功。

配置Maven

由于Maven的默认仓库为:${user.home}/.m2/repository

查找起来有点麻烦,建议修改到maven路径下

打开Maven的配置文件
maven路径\conf\settings.xml

编辑配置文件,修改仓库路径
  <localRepository>E:\environment\apache-maven-3.8.8\maven-repo</localRepository>

由于Maven的镜像是国外的,所以当下载架包到本地时网速会很慢,所以建议修改为国内的镜像

打开Maven的配置文件
maven路径\conf\settings.xml

编辑配置文件,修改镜像仓库路径
    <mirror>
      <id>aliyunmaven</id>
      <mirrorOf>*</mirrorOf>
      <name>阿里云公共仓库</name>
      <url>https://maven.aliyun.com/repository/public</url>
    </mirror>

阿里云云效Maven官方指南:https://developer.aliyun.com/mvn/guide

在IDEA中配置Maven

在全局变量中设置重启之后即可。Maven的配置文件就是我们之前修改的那个配置文件的路径

Maven常用命令

# 显示Maven版本
mvn -v
# 编译源代码
mvn compile
# 运行测试
mvn test
# 打包
mvn package
# 打包跳过测试
mvn package -Dmaven.test.skip=true
# 清除target目录
mvn clean
# 将当前项目打包导入本地maven仓库
mvn install
# 上传项目包到私有maven仓库
mvn deploy
# 将指定项目包导入本地maven仓库
mvn install:install-file -DgroupId=<groupId> -DartifactId=<artifactId> -Dversion=1.0.0 -Dpackaging=jar -Dfile=<test.jar>
# 将指定项目包上传到指定的私有maven仓库
mvn deploy:deploy-file -DgroupId=<groupId> -DartifactId=<artifactId> -Dversion=1.0.0 -Dpackaging=jar -Dfile=<test.jar> -Durl=http://ip:port/nexus/content/repositories/snapshots/ -DrepositoryId=snapshots

Maven配置多个远程仓库(私有仓库)

对同一个仓库(repository)配置多个镜像时,多个镜像是备份关系,只有上一个镜像找不到的场景下(匹配不到镜像仓库地址)才会去匹配下一个镜像。如果一个镜像可以被匹配,但找不到jar包,这种情况maven是不会再去匹配第二个镜像的。因此配置多个远程仓库也是有必要的

需要修改Maven的配置参数:maven路径\conf\settings.xml,需要注释掉之前在mirrors标签配置的信息

1.认证配置

添加远程仓库的账号配置
servers:多个账号标签
server:单个账号标签
id:远程仓库的唯一标识
username:登陆远程仓库的用户名
password:登陆远程仓库的密码
eg:

  <servers>
    <server>
      <id>nexus</id>
      <username>admin</username>
      <password>admin</password>
    </server>
    
    <server>
      <id>releases</id>
      <username>admin</username>
      <password>admin</password>
    </server>
  </servers>

2.配置远程仓库信息

添加远程仓库信息配置,配置成功后,会由下到上的顺序进行依赖的下载

profiles:多个配置文件标签
profile:单个配置文件标签
repositories:多个仓库标签
repository:单个仓库标签(用于下载项目依赖)
pluginRepositories:多个插件仓库标签
pluginRepository:单个插件仓库标签
id:配置文件id、仓库id、插件仓库id
name:仓库名称
url:仓库地址
eg:

 <profiles>
	 <profile>
		<id>cloudera-repository</id>
		<repositories>
		  <repository>
			<id>cloudera</id>
			<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		  </repository>
		</repositories>
        <pluginRepositories>
          <pluginRepository>
            <id>nexus</id>
            <name>Nexus</name>
            <url>http://192.168.1.x:xxxx/repository/maven-public/</url>
          </pluginRepository>
        </pluginRepositories>
	 </profile>
	 
	 <profile>
		<id>aliyun-repository</id>
		<repositories>
		  <repository>
			<id>aliyun</id>
			<url>http://maven.aliyun.com/nexus/content/groups/public</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		  </repository>
		</repositories>
        <pluginRepositories>
          <pluginRepository>
            <id>nexus</id>
            <name>Nexus</name>
            <url>http://192.168.1.x:xxxx/repository/maven-public/</url>
          </pluginRepository>
        </pluginRepositories>
	 </profile>
  </profiles>

3.激活配置文件信息

激活之前在profiles标签中的配置信息
activeProfiles:需激活的多个配置文件标签
activeProfile:需激活的单个配置文件标签

 <activeProfiles>
	<activeProfile>aliyun-repository</activeProfile>
    <activeProfile>cloudera-repository</activeProfile>
  </activeProfiles>

常见问题解答

1.在pom.xml中添加了新的依赖,如何让maven添加对应架包?

在IDE的最右边有maven框(当然你如果创建项目时没有选择maven的方式建立那就不存在maven管理架包)点击并选择重新载入所有架包,如果镜像仓库中有该依赖架包,即可导入本地仓库中正常使用。如下图所示

2.导入别人的项目时,重新载入架包失败是什么原因?

1.你的初始镜像地址没有修改,由于默认镜像地址是国外的,有可能下载超时导致连接失败。
2.你选择的镜像地址是一个小众的maven仓库地址,可能它本身就没有该版本的架包所以无法下载对应的架包到本地仓库。
3.可能是你的父节点的springboot版本太高了,无法正常使用。可以降低版本号来解决
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>      <!-- 版本号:2.1.4.RELEASE -->
    </parent>
4.如果你的依赖的版本号在镜像仓库有架包,仍然加载不起来。那很有可能是你的IDE版本太低与maven版本太高导致无法兼容。
可以删掉之前的maven,安装一个老版本的maven。比如2018年的maven3.5.3
maven3.x各版本的下载地址:https://archive.apache.org/dist/maven/maven-3/

3.maven的私人镜像仓库没有该依赖爆红,下载相应依赖导入本地仍然爆红?

由于在之前的本地仓库下载镜像仓库的依赖时,不管存不存在都会在相应路径生成_remote.repositories,标识该依赖,需要删除之前的文件,重新加载即可。

4.加载一个项目时,maven全部爆红应该如何排查?

将所有依赖全部注释,之后一个依赖一个依赖的解除注释并刷新maven,如果依然爆红就说明此依赖没有相应的架包

5.如果将jar包导入到本地maven仓库中?

进入jar包所在的目录,进入DOS命令行,执行mvn命令进行导入

mvn install:install-file -Dfile=monitor-test-1.0.0.jar "-DgroupId=com.shen" -DartifactId=monitor-test -Dversion=1.0.0 -Dpackaging=jar

执行mvn命令后会导入本地maven仓库

之后在pom.xml文件中添加即可导入jar包

        <dependency>
            <groupId>com.shen</groupId>
            <artifactId>monitor-test</artifactId>
            <version>1.0.0</version>
        </dependency>
posted @ 2023-08-09 19:29  柯南。道尔  阅读(265)  评论(0编辑  收藏  举报