• SpringBoot--maven-wrapper(mvnw)--使用/详解


    原文网址:SpringBoot--maven-wrapper(mvnw)--使用/详解_IT利刃出鞘的博客-CSDN博客

    简介

    本文介绍SpringBoot项目中maven-wrapper(也就是mvnw)的用法。

    问题引出

            用https://start.spring.io/生成Spring Boot初始项目后,发现有几个奇怪的文件:

    .
    |-- .mvn
    |   `-- wrapper
    |       |-- maven-wrapper.jar
    |       `-- maven-wrapper.properties
    |-- mvnw
    |-- mvnw.cmd

    详见下图:

            在一些项目中并没有这几个文件,可见它们不是必须的,那么它们有什么作用呢?

    maven-wrapper的作用

    传统maven的使用流程

    1. 先到官网上下载
    2. 配置环境变量把mvn可执行文件路径加入到环境变量,以便之后使用直接使用mvn命令。
    3. 项目pom.xml文件描述的依赖文件默认下载在用户目录下的.m2文件下的repository目录下。
    4. 如果需要更换maven的版本,需要重新下载maven并替换环境变量path中的maven路径。

    现在可以使用maven-wrapper,它的作用如下

    1. 执行mvnw,比如:mvnw clean,如果本地没有匹配的maven版本,直接会去下载maven,放在用户目录下的.m2/wrapper中
    2. 项目的依赖的jar包会直接放在项目目录下的repository目录,这样可以很清晰看到当前项目的依赖文件。
    3. 如果需要更换maven的版本,只需要更改项目当前目录下.mvn/wrapper/maven-wrapper.properties的distributionUrl属性值,更换对应版本的maven下载地址。mvnw命令就会自动重新下载maven。
    4. 带有mvnw文件的项目,除了额外需要配置 java环境外,只需要使用本项目的mvnw脚本就可以完成编译,打包,发布等一系列操作。

    手动生成mvnw等

    如果想要手动生成mvnw相关文件,可以执行命令:

    mvn -N io.takari:maven:wrapper

    它就能生成如下文件:

    .
    |-- .mvn
    |   `-- wrapper
    |       |-- maven-wrapper.jar
    |       `-- maven-wrapper.properties
    |-- mvnw
    |-- mvnw.cmd

    没必要使用maven-wrapper

    1. Idea软件自带了maven,不需要maven wrapper来自动下载
    2. Idea软件直接使用侧边栏执行maven命令比较方便。
    3. maven版本也是很稳定。很少会出现需要切换maven版本的情况
      1. 所以maven wrapper根据配置自动切换maven版本这个功能基本用不到。
    4. mvnw命令会在直接当前项目下生成repository,看起来每一个项目独立了repository,很模块化的样子。但是这样不仅浪费了磁盘空间,且实际上开发中并不关心repository,Idea会自动有external librayies目录提供查看依赖的jar包。

  • 相关阅读:
    如何制作 GitHub 个人主页
    【OAuth2】十八、OIDC的认识应用
    SAP ABAP——数据类型(二)【TYPES自定义数据类型详解】
    55跳跃游戏
    力扣动态规划--数组中找几个数的思路
    软件工程导论——第五章——总体设计
    ChIP-Seq,MeRIP-seq峰(peak),eccDNA等染色体分布可视化
    设计模式-代理模式
    JAVA开发管理(比敏捷更快的DevOps)
    小鱼送你个URDF模板|省出来时间过七夕
  • 原文地址:https://blog.csdn.net/feiying0canglang/article/details/125410083