Maven学习----Maven安装与环境变量配置教程


Posted in Java/Android onJune 29, 2021
目录
  • 一、Maven简介
    • 1. 什么是Maven
    • 2. Maven的作用
    • 3. 坐标的概念
    • 小结
  • 二、Maven安装配置【操作】
    • 1. Maven的仓库类型
    • 2. 下载与目录结构
    • 3. Maven安装配置
      • 3.1 安装Maven
      • 3.2 配置Maven仓库
    • 小结
  • 三、Maven项目的目录结构
    • 小结
  • 四、Maven构建项目
    • 1. 项目构建的生命周期
    • 小结
  • 五、Maven管理依赖和插件
    • Maven的依赖管理
      • 1. 在idea配置Maven(操作)
    • 2. 在idea创建Maven项目
      • 2.1 创建Maven的java项目
    • 2.2 创建Maven的web项目
      • 1.选择项目的骨架
      • 2.设置项目的坐标
      • 3. 引入依赖
      • 4. 依赖范围
    • 小结
      • jdk编译版本插件
      • tomcat7插件
  • Maven的插件
  • 六、Maven的私服
    • 搭建私服
    • 讲解
      • 什么是Maven的私服
    • 搭建Maven私服
      • 1. 下载nexus
      • 2. 安装nexus
      • 3. 启动nexus
      • 4. 登录nexus
      • nexus的仓库类型介绍
    • 小结
    • 使用私服
      • 把项目发布到私服
      • 从私服下载jar包
    • 小结
    • 上传jar到本地仓库和私服
      • 目标
      • 把第三方jar打包到本地仓库
      • 把第三方jar打包发布到私服
      • 参数说明
  • 七、Lombok
    • 1. Lombok介绍与配置
      • 什么是Lombok
      • Lombok的作用
      • Lombok的配置
    • 2. Lombok的常用注解
  • 附:添加依赖出错怎么办
    • 现象:
    • 原因:
      • 解决:
  • 总结

https://repo1.maven.org/maven2

http://maven.apache.org 

  • Maven的目录结构:
  • maven
      |--bin   Maven的可执行命令文件夹
      |--boot  Maven的引导程序(类加载器)
      |--conf  配置文件夹
      |--lib   Maven的核心程序代码

    3. Maven安装配置

    3.1 安装Maven

    1.Maven是免安装的,直接解压

    1. 注意:解压路径里,不要有中文、空格、特殊字符

    2.注意检查JDK环境变量是否正确

    1. Maven软件是Java语言编写的

    3.配置Maven环境变量:

    1. 增加MAVEN_HOME=Maven的解压目录
    2. 修改Path中添加 %MAVEN_HOME%\bin

    Maven学习----Maven安装与环境变量配置教程

    Maven学习----Maven安装与环境变量配置教程

    1.验证Maven配置

    1. 打开cmd,输入命令:mvn -version

    Maven学习----Maven安装与环境变量配置教程

    3.2 配置Maven仓库

    配置步骤:

    1. 新建一个目录,例如 :repository,目录里不能有中文、空格、特殊字符
    2. 比如我的路径为:D:\develop_software\maven\repository
    3. 修改Maven的conf\settings.xml配置文件

    Maven学习----Maven安装与环境变量配置教程

    扩展:

    1. 修改settings.xml里,设置Maven编译的版本jdk1.8。在<profiles>里边增加:
    <profile>    
        <id>jdk-1.8</id>    
        <activation>    
            <activeByDefault>true</activeByDefault>    
            <jdk>1.8</jdk>    
        </activation>    
        <properties>    
            <maven.compiler.source>1.8</maven.compiler.source>    
            <maven.compiler.target>1.8</maven.compiler.target>    
            <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>    
        </properties>    
    </profile>

    Maven学习----Maven安装与环境变量配置教程

    小结

    仓库类型

    • 本地仓库:自己电脑上缓存jar包的文件夹
    • 远程仓库(私服):一些企业、社区、组织自己搭建的仓库服务
    • 中央仓库:Maven官方团队维护仓库服务

    maven的安装:

    1. 解压。注意:解压的目录里不要有中文、空格、特殊字符
    2. 配置环境变量:
      1. 新增MAVEN_HOME, 值就是maven软件的解压目录
      2. 修改Path,值里新增%MAVEN_HOME%\bin

    配置本地仓库:

    • 创建repository目录里不要有中文、空格 、特殊字符
    • 修改Maven的conf\settings.xml,增加本地仓库的配置:<localRepository>标签

    三、Maven项目的目录结构

    一个项目要想使用Maven进行管理,那么这个项目的目录结构就必须要符合Maven的要求:

    maven项目
    	|--pom.xml                 项目对象模型文件,一个Maven项目必定有pom.xml文件
    	|--src
    		|--main                项目的主体程序代码目录
    		|	|--java            项目的Java程序代码放在这文件夹里
    		|	|--resources       项目的配置文件放在这里
    		|	|--webapp          项目的web资源放在这里,html,css,js,jsp,音频,图片,视频等等
    		|		|--WEB-INF 
    		|		|--其它web资源
    		|--test                项目的单元测试代码目录
    			|--java            项目的单元测试代码
    			|--resources       项目单元测试需要的配置文件

    小结

    src\main\java:放主体程序代码的java文件

    src\main\resources:放主体程序代码的配置文件

    src\main\webapp:放主体程序代码的web资源:html、css、js、jsp等等

    四、Maven构建项目

    1. 项目构建的生命周期

    Maven命令执行的规律:

    clean:			clean
    compile:		compile
    test:			compile=>test
    package:		compile=>test=>package
    install:		compile=>test=>package=>install
    人的生命周期:婴儿=>儿童=>少年=>青年=>中年=>老年

    Maven有三套生命周期

    1. 清理生命周期:CleanLifeCycle
      1. 有常用命令:clean
    2. 默认生命周期(构建生命周期):DefaultLifeCycle
      1. 有常用命令:compile->test->package->install->deploy
    3. 站点生命周期:SiteLifeCycle
      1. 有常用命令:site。生成Maven项目的描述信息文档
    • 如果执行了一个目标命令:Maven会把生命周期里的命令,从第一个一直执行到目标命令为止

    小结

    常用命令:

    • mvn clean:清理。删除掉target目录
    • mvn compile:编译。把主体程序代码进行编译,放到target目录里
    • mvn test:测试。编译并执行单元测试代码
    • mvn package:打包。Java项目打成jar包,web项目打包war包
    • mvn install:安装。把程序包安装到本地仓库,安装位置是坐标对应的文件夹

    Maven的生命周期

    • 清理生命周期CleanLifeCycle:clean
    • 默认生命周期/构建生命周期DefaultLifeCycle:compile=>test=>package=>install=>deploy
    • 站点生命周期SiteLifeCycle:site
    • 生命周期的作用:只要执行一个目标命令,Maven会从生命周期里第一个阶段开始,执行到目标命令为止

    五、Maven管理依赖和插件

    Maven的依赖管理

    • 把Maven配置到idea中
    • 在idea里创建Maven的java项目
    • 在idea里创建Maven的web项目
    • Maven项目中,引入依赖的方法
    • Maven的依赖范围配置,解决jar包冲突

    1. 在idea配置Maven(操作)

    • 配置Maven

    Maven学习----Maven安装与环境变量配置教程

    • 增加运行的配置项:-DarchetypeCatalog=internal

    Maven学习----Maven安装与环境变量配置教程

    2. 在idea创建Maven项目

    2.1 创建Maven的java项目

    1.创建Module,选择Maven类型,选择骨架org.apache.maven.archetypes:maven-archetype-quickstart

    Maven学习----Maven安装与环境变量配置教程

    2.设置项目的坐标

    Maven学习----Maven安装与环境变量配置教程

    3.再继续步骤,跟以前的一样:设置module的名称和位置

    注意:不要和已有的其它module重名或者重位置

    Maven学习----Maven安装与环境变量配置教程

    4.创建后,如果弹窗Maven projects need to be imported,就选择 启动自动导入。

    作用是:如果pom.xml文件有变更,Maven会自动读取,立即生效;否则就要手动导入

    Maven学习----Maven安装与环境变量配置教程

    5.如果文件夹缺失,就创建补全,然后刷新

    Maven学习----Maven安装与环境变量配置教程

    2.2 创建Maven的web项目

    1.选择项目的骨架

    Maven学习----Maven安装与环境变量配置教程

    2.设置项目的坐标

    如果上边Add as module toParent是有配置的,那么要在右边全部选择none

    Maven学习----Maven安装与环境变量配置教程

    Maven学习----Maven安装与环境变量配置教程

    3. 引入依赖

    如果项目中需要使用jar包,只需要把jar包的坐标配置到项目的pom.xml中即可。在pom.xml的<dependencies>标签里增加以下内容:

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>依赖范围</scope>
    </dependency>

    可以在pom.xml里,输入dep,会自动补充坐标模板,我们填充坐标值即可

    可以使用 alt+insert,会弹出依赖导入的界面,可以从本地仓库里搜索依赖

    如果不知道依赖的坐标,可以从中央仓库搜索坐标:https://mvnrepository.com/

    4. 依赖范围

    如果项目中引入的jar包过多,可能会出现jar包冲突,我们可能设置jar包不同的依赖范围来处理jar包冲突。

    Maven的依赖范围有:

    • compile:默认的依赖范围,全范围有效。
    • test:单元测试有效。src/test里有效,src/main里无效
    • provided:编译时有效,运行时使用其它地方提供的jar包。
    • runtime:运行时有效,编译时无效。比如:数据库驱动包
    • system:引入仓库之外的本地jar包。少用

    Maven学习----Maven安装与环境变量配置教程

    实际开发中特殊的jar包

    • Junit:依赖范围通常设置为test
    • servlet-api, jsp-api:依赖范围通常设置为provided
    • 数据库驱动包:依赖范围可以是默认的,也可以是runtime
    • 其它包,绝大多数都是默认依赖范围compile

    小结

    依赖范围:

    • compile:默认的。编译时有效,运行时有效,单元测试有效
    • test:单元测试有效(src\main\test)里有效
      • 单元测试Junit的包
    • provided:编译时有效,运行时无效(备胎包)
      • servlet-api,jsp-api
    • runtime:编译时无效,运行时有效
      • 数据库驱动包
    • system:引用仓库之外的本地jar包,少用

    Maven的插件

    • maven插件可以完成一些特定的功能。例如,集成jdk插件可以方便的修改项目的编译环境;集成tomcat插件后,无需安装tomcat服务器就可以运行tomcat进行项目的发布与测试。
    • 在pom.xml的plugins标签中,通过plugin标签引入maven的功能插件。

    jdk编译版本插件

    • <plugins>标签,放在pom.xml的<build>标签内部
    <!--jdk编译插件-->
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.2</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>utf-8</encoding>
            </configuration>
        </plugin>
    </plugins>

    tomcat7插件

    • <plugins>标签,放在pom.xml的<build>标签内部
    <plugins>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <configuration>
                <!-- 指定端口 -->
                <port>82</port>
                <!-- 项目路径 -->
                <path>/</path>
            </configuration>
        </plugin>
    </plugins>

    六、Maven的私服

    搭建私服

    • 了解私服的概念
    • 搭建私服

    讲解

    什么是Maven的私服

    • 公司在自己的局域网内搭建自己的远程仓库服务器,称为私服
    • 私服服务器即是公司内部的 maven 远程仓库, 每个员工的电脑上安装 maven 软件并且连接私服服务器,员工将自己开发的项目打成 jar 并发布到私服服务器,其它项目组从私服服务器下载所依赖的构件(jar)。
    • 私服还充当一个代理服务器,当私服上没有 jar 包会从互联网中央仓库自动下载,如下图 :

    Maven学习----Maven安装与环境变量配置教程

    搭建Maven私服

    1. 下载nexus

    • Nexus 是 Maven 仓库管理器, 通过 nexus 可以搭建 maven 仓库,同时 nexus 还提供强大的仓库管理功能,构件搜索功能等。
    • 下载地址: http://www.sonatype.org/nexus/archived/ ,下载: nexus-2.12.0-01-bundle.zip

    Maven学习----Maven安装与环境变量配置教程

    2. 安装nexus

    1.解压nexus-2.12.0-01-bundle.zip。注意:解压路径里不要有中文、空格、特殊字符

    2.以管理员方式打开cmd,切换进入解压目录的bin文件夹里,运行命令:nexus.bat install

    1. 把nexus安装成为Windows的服务

    Maven学习----Maven安装与环境变量配置教程

    3. 启动nexus

    • 启动nexus服务:以管理员方式打开cmd,输入命令:net start nexus(第一次启动比较慢)
      • 如果把nexus服务设置为开机自启动,以后就不需要再手动启动nexus服务了
      • 但是通常是nexus服务器上设置。我们自己电脑上,没有必要设置开机自启动
    • 关闭nexus服务:以管理员方式打开cmd,输入命令:net stop nexus

    4. 登录nexus

    打开浏览器,输入地址:http://localhost:8081/nexus

    • 可以打开nexus的conf/nexus.properties文件,修改端口号,重启nexus服务后生效

    Maven学习----Maven安装与环境变量配置教程

    登录“Log in”,输入帐号和密码进行登录(帐号admin,密码admin123)

    Maven学习----Maven安装与环境变量配置教程

    nexus的仓库类型介绍

    Maven学习----Maven安装与环境变量配置教程

    • hosted:宿主仓库, 部署自己的 jar 到这个类型的仓库,包括 releases 和 snapshot 两部分, Releases 公司内部发布版本仓库、 Snapshots 公司内部测试版本仓库
    • proxy:代理仓库, 用于代理远程的公共仓库,如 maven 中央仓库,用户连接私服,私服自动去中央仓库下载 jar 包或者插件。
    • group:仓库组,用来合并多个 hosted/proxy 仓库,通常我们配置自己的 maven 连接仓库组。
    • virtual:虚拟仓库,兼容 Maven1 版本的 jar 或者插件

    小结

    • hosted:宿主仓库。nexus私服本身的仓库
    • proxy:代理仓库。私服所代理的仓库
    • group:仓库组。针对于使用者,只要配置一个仓库组的地址,就可以引用组里定义的所有子库
    • virtual:虚拟仓库

    使用私服

    • 把项目发布到私服
    • 从私服下载jar包

    把项目发布到私服

    使用场景

    • 企业中多个团队协作开发通常会将一些公用的组件、开发模块等发布到私服供其它团队或模块开发人员使用。
    • 本例子假设多团队分别开发。某个团队开发完在common_utils, 将 common_utils发布到私服供其它团队使用

    配置

    第一步:在用户自己的Maven软件里修改conf/settings.xml

    • servers标签里,配置私服的帐号和密码
    <server>
        <id>releases</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
    <server>
        <id>snapshots</id>
        <username>admin</username>
        <password>admin123</password>
    </server>

    第二步:在用户需要发布的私服的项目pom.xml里,配置私服仓库的地址。

    • 本公司的自己的 jar 包会上传到私服的宿主仓库,根据工程的版本号决定上传到哪个宿主仓库
    • 如果版本为 release 则上传到私服的 release 仓库,如果版本为snapshot 则上传到私服的 snapshot 仓库
    • 把以下内容写到项目的pom.xml的根标签里
    <distributionManagement>
        <repository>
            <!-- 注意:id的值,是刚刚在settings.xml中配置的server的id -->
            <id>releases</id>
            <url>http://localhost:8081/nexus/content/repositories/releases/</url>
        </repository>
        <snapshotRepository>
            <!-- 注意:id的值,是刚刚在settings.xml中配置的server的id -->
            <id>snapshots</id>
            <url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

    测试

    1.启动nexus服务(如果已启动,就不需要做这一步)

    2.在项目里执行Maven的deploy命令:

    1. 根据本项目pom.xml中version定义决定发布到哪个仓库
    2. 如果version定义为xx-snapshot,项目将发布到 nexus 的 snapshot仓库
    3. 如果version定义为xx-release,项目将发布到 nexus的 release 仓库

    从私服下载jar包

    使用场景

    • 没有配置 nexus的时候,如果本地仓库没有,就会去中央仓库下载,下载速度不稳定
    • 通常在企业中会在局域网内部署一台私服服务器。这样:
      • 本地项目首先去本地仓库找 jar;
      • 如果没有找到则连接私服从私服下载 jar 包;
      • 如果私服没有 jar 包,私服同时作为代理服务器从中央仓库下载 jar 包

    好处是:

    1. 由私服对公司项目的依赖 jar 包统一管理
    2. 可以提高下载速度, 项目连接私服下载 jar 包的速度,要比项目连接中央仓库的速度快的多。

    配置

    第一步:在settings.xmlprofiles标签下配置:

    注:由于settings.xml中没有repositories标签,所以要使用profile标签来配置仓库

    <profile>
        <!--profile 的 id-->
        <id>dev</id>
        <repositories>
            <repository>
                <!--仓库 id, repositories 可以配置多个仓库,保证 id 不重复-->
                <id>nexus</id>
                <!--仓库地址,即 nexus 仓库组的地址-->
                <url>http://localhost:8081/nexus/content/groups/public/</url>
                <!--是否下载 releases 构件-->
                <releases>
                    <enabled>true</enabled>
                </releases>
                <!--是否下载 snapshots 构件-->
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </repository>
        </repositories>
        <pluginRepositories>
            <!-- 插件仓库, maven 的运行依赖插件,也需要从私服下载插件 -->
            <pluginRepository>
                <!-- 插件仓库的 id 不允许重复,如果重复后边配置会覆盖前边 -->
                <id>public</id>
                <name>Public Repositories</name>
                <url>http://localhost:8081/nexus/content/groups/public/</url>
            </pluginRepository>
        </pluginRepositories>
    </profile>

    第二步:激活profile定义的仓库

    激活后,配置的仓库才会生效

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

    测试 创建Maven应用testdownload,配置依赖

    <dependency>
        <groupId>com.baidu</groupId>
        <artifactId>commons-utils</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

    编译项目,查看日志会出现:

    Maven学习----Maven安装与环境变量配置教程

    查看本地仓库里,会有从私服下载的jar包

    小结

    把项目发布到私服:

    1. 在Maven的settings.xml里,配置仓库的帐号和密码
    2. 在Maven项目的pom.xml里,配置仓库的地址
    3. 执行Maven命令:mvn deploy

    从私服里下载jar:

    1. 在settings.xml里配置仓库地址
    2. 在settings.xml里激活仓库的配置
    3. 在Maven项目里,配置依赖
      1. 如果这个依赖,在本地仓库里没有,Maven就会从私服里下载到本地仓库,再引入到Maven项目里

    上传jar到本地仓库和私服

    目标

    • 把第三方jar打包到本地仓库
    • 把jar打包发布到私服

    把第三方jar打包到本地仓库

    • 如果有一个jar不在本地仓库、不在私服、不在中央仓库。我们可以把jar安装到本地仓库中,方便后续使用
    • cmd命令示例:

    mvn install:install-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.1.37 -Dfile=fastjson-1.1.37.jar -Dpackaging=jar

    Maven学习----Maven安装与环境变量配置教程

    • 查看本地仓库,验证是否安装成功

    Maven学习----Maven安装与环境变量配置教程

    把第三方jar打包发布到私服

    • 第一步:在settings.xml中配置私服的server信息
    <server>
        <id>thirdparty</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
    • 第二步:执行命令

    mvn deploy:deploy-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.1.37 -Dpackaging=jar -Dfile=fastjson-1.1.37.jar -Durl=http://localhost:8081/nexus/content/repositories/thirdparty/ -DrepositoryId=thirdparty

    Maven学习----Maven安装与环境变量配置教程

    • 第三步:查看私服的第三方仓库,验证是否发布成功

    Maven学习----Maven安装与环境变量配置教程

    参数说明

    • DgroupIdDartifactId构成了 jar 包的坐标,项目就是依靠这两个属性定位。可以自己起名
    • Dfile 表示需要上传的 jar 包的位置。
    • Durl 私服上仓库的位置,打开 nexus——>repositories 菜单,可以看到该路径。
    • DrepositoryId 服务器的表示 id,在 nexus 的 configuration 可以看到。
    • Dversion 表示版本信息。

    ​ 上传成功后,在 nexus 界面点击 3rd party 仓库可以看到这包。

    七、Lombok

    1. Lombok介绍与配置

    • 什么是Lombok
    • Lombok的作用
    • Lombok的配置

    什么是Lombok

    • Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。
    • 官网: https://www.projectlombok.org/

    Lombok的作用

    通过添加注解的方式,帮我们生成一些方法,提高开发人员的开发效率。

    例如:

    • 开发中经常需要写的javabean,要添加相应的getter/setter,也许还要去写构造器、equals等方法
    • 当属性多时,会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量
    • 使用Lombok,可以帮我们生成这些方法,我们就不用自己编写了

    Lombok的配置

    • 添加maven依赖
    <dependency>
    	<groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    	<version>1.18.8</version>
    	<scope>provided</scope>
    </dependency>

    安装插件

    • 注意:Lombok插件暂不支持idea2020
    • 使用Lombok还需要插件的配合。
    • 打开idea的设置,点击Plugins,点击Browse repositories,在弹出的窗口中搜索lombok,然后安装即可

    Maven学习----Maven安装与环境变量配置教程

    • 解决编译时出错问题

    ​ 编译时出错,可能是没有enable注解处理器。Annotation Processors > Enable annotation processing。设置完成之后程序正常运行。

    Maven学习----Maven安装与环境变量配置教程

    2. Lombok的常用注解

    目标

    @Data

    @Getter/@Setter

    @ToString

    @NoArgsConstructor, @AllArgsConstructor

    @Data

    • @Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
    @Data
    public class User implements Serializable{
        private Integer id;
        private String username;
        private String password;
        private String address;
        private String nickname;
        private String gender;
        private String email;
        private String status;
    }

    @Getter/@Setter

    • 如果觉得@Data不够精细,可以使用@Getter/@Setter注解
    • 此注解用在属性上,可以为相应的属性自动生成Getter/Setter方法.
    public class User implements Serializable{
        @Setter
        @Getter
        private Integer id;
        private String username;
        private String password;
        private String address;
        private String nickname;
        private String gender;
        private String email;
        private String status;
    }

    @ToString

    • 类上使用@ToString注解,Lombok会生成一个toString()方法
    • 生成的toString方法会输出类名、所有属性(会按照属性定义顺序),用逗号来分割。
    • 通过exclude属性指定忽略字段不输出,
    @ToString(exclude = {"id"}) 
    public class User implements Serializable{
        private Integer id;
        private String username;
        private String password;
        private String address;
        private String nickname;
        private String gender;
        private String email;
        private String status;
    }

    @xxxConstructor

    @NoArgsConstructor: 无参构造器

    @NoArgsConstructor
    public class User implements Serializable{
        private Integer id;
        private String username;
        private String password;
        private String address;
        private String nickname;
        private String gender;
        private String email;
        private String status;
    }
    • @AllArgsConstructor: 全参构造器
    @AllArgsConstructor
    public class User implements Serializable{
        private Integer id;
        private String username;
        private String password;
        private String address;
        private String nickname;
        private String gender;
        private String email;
        private String status;
    }

    附:添加依赖出错怎么办

    现象:

    • 在pom.xml里添加依赖坐标后,报红,引入依赖失败

    原因:

    • 可能有多方面因素导致,最常见的原因是:
      • 网络不稳定,导致从中央仓库中下载依赖时失败
      • 本地仓库中有大量的*.lastUpdated文件,是下载依赖出错后遗留的不完整数据

    解决:

    第一步:配置阿里云的仓库镜像

    打开Maven软件里conf/settings.xml

    <mirrors>标签中添加如下内容:

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

    第二步:删除本地仓库里的缓存文件

    • .lastUpdated结尾的文件,是下载依赖失败后遗留的文件,需要清除掉

    1.在本地仓库文件夹里搜索*.lastUpdated

    Maven学习----Maven安装与环境变量配置教程

    2.把搜索到的所有文件全部删除

    Maven学习----Maven安装与环境变量配置教程

    第三步:重新添加依赖

    • pom.xml中,删除原有的所有依赖
    • 重新添加依赖进去。
    • Maven会自动重新导入依赖,如果本地仓库中没有,就会自动从阿里云仓库镜像下载依赖

    总结

    本篇文章就到这里了,希望可以帮到你,也希望您能多多关注三水点靠木的更多内容!

    Java/Android 相关文章推荐
    Java方法重载和方法重写的区别到底在哪?
    Jun 11 Java/Android
    JPA如何使用entityManager执行SQL并指定返回类型
    Jun 15 Java/Android
    SpringBoot项目中控制台日志的保存配置操作
    Jun 18 Java/Android
    Spring Boot两种全局配置和两种注解的操作方法
    Jun 29 Java/Android
    Java基础之线程锁相关知识总结
    Jun 30 Java/Android
    springboot layui hutool Excel导入的实现
    Mar 31 Java/Android
    零基础学java之带返回值的方法的定义和调用
    Apr 10 Java/Android
    详细介绍Java中的CyclicBarrier
    Apr 13 Java/Android
    Java版 单机五子棋
    May 04 Java/Android
    spring IOC容器的Bean管理XML自动装配过程
    May 30 Java/Android
    Springboot中如何自动转JSON输出
    Jun 16 Java/Android
    Java实现贪吃蛇游戏的示例代码
    Sep 23 Java/Android
    Spring Boot两种全局配置和两种注解的操作方法
    Spring Boot 实现敏感词及特殊字符过滤处理
    Jun 29 #Java/Android
    elasticSearch-api的具体操作步骤讲解
    Java SSH 秘钥连接mysql数据库的方法
    一篇文章带你复习java知识点
    Java elasticsearch安装以及部署教程
    Java 数组内置函数toArray详解
    You might like
    ajax返回值中有回车换行、空格的解决方法分享
    2013/10/24 PHP
    PHP速成大法
    2015/01/30 PHP
    Laravel中使用自己编写类库的3种方法
    2015/02/10 PHP
    Laravel 5框架学习之Eloquent 关系
    2015/04/09 PHP
    PHP 反射(Reflection)使用实例
    2015/05/12 PHP
    php mongodb操作类 带几个简单的例子
    2016/08/25 PHP
    PHP测试框架PHPUnit组织测试操作示例
    2018/05/28 PHP
    laravel手动创建数组分页的实现代码
    2018/06/07 PHP
    js获取url参数的使用扩展实例
    2007/12/29 Javascript
    JavaScript 数组循环引起的思考
    2010/01/01 Javascript
    JS字符串处理实例代码
    2013/08/05 Javascript
    JS获取文本框,下拉框,单选框的值的简单实例
    2014/02/26 Javascript
    javascript数字时钟示例分享
    2014/04/23 Javascript
    通过js来制作复选框的全选和不选效果
    2014/05/22 Javascript
    ECMAScript6函数剩余参数(Rest Parameters)
    2015/06/12 Javascript
    jQuery抛物线运动实现方法(附完整demo源码下载)
    2016/01/08 Javascript
    JavaScript字符串对象(string)基本用法示例
    2017/01/18 Javascript
    微信小程序登录态和检验注册过没的app.js写法
    2019/05/22 Javascript
    python中的装饰器详解
    2015/04/13 Python
    Python利用multiprocessing实现最简单的分布式作业调度系统实例
    2017/11/14 Python
    python 把文件中的每一行以数组的元素放入数组中的方法
    2018/04/29 Python
    Django添加sitemap的方法示例
    2018/08/06 Python
    python实现对图片进行旋转,放缩,裁剪的功能
    2019/08/07 Python
    Python实现大数据收集至excel的思路详解
    2020/01/03 Python
    python属于跨平台语言码
    2020/06/09 Python
    利用Python实现朋友圈中的九宫格图片效果
    2020/09/03 Python
    Python实现中英文全文搜索的示例
    2020/12/04 Python
    html5指南-1.html5全局属性(html5 global attributes)深入理解
    2013/01/07 HTML / CSS
    什么是会话Bean
    2015/05/14 面试题
    优秀的茶餐厅创业计划书
    2014/01/03 职场文书
    信用社员工先进事迹材料
    2014/02/04 职场文书
    团队会宣传标语
    2014/10/09 职场文书
    优秀班集体申报材料
    2014/12/25 职场文书
    2016年寒假见闻
    2015/10/10 职场文书
    Python opencv缺陷检测的实现及问题解决
    2021/04/24 Python
    浅谈python数据类型及其操作
    2021/05/25 Python