ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

.mvn目录&mvnw和mvnw.cmd文件说明

2021-03-12 11:58:33  阅读:278  来源: 互联网

标签:maven mvnw cmd wrapper Maven 版本 mvn


我们使用Maven时,基本上只会用到mvn这一个命令。有些童鞋可能听说过mvnw,这个是啥?

mvnw是Maven Wrapper的缩写。因为我们安装Maven时,默认情况下,系统所有项目都会使用全局安装的这个Maven版本。但是,对于某些项目来说,它可能必须使用某个特定的Maven版本,这个时候,就可以使用Maven Wrapper,它可以负责给这个特定的项目安装指定版本的Maven,而其他项目不受影响。

简单地说,Maven Wrapper就是给一个项目提供一个独立的,指定版本的Maven给它使用。

安装Maven Wrapper

安装Maven Wrapper最简单的方式是在项目的根目录(即pom.xml所在的目录)下运行安装命令:

mvn -N io.takari:maven:0.7.6:wrapper

它会自动使用最新版本的Maven。注意0.7.6是Maven Wrapper的版本。最新的Maven Wrapper版本可以去官方网站查看。

如果要指定使用的Maven版本,使用下面的安装命令指定版本,例如3.3.3

mvn -N io.takari:maven:0.7.6:wrapper -Dmaven=3.3.3

安装后,查看项目结构:

my-project
├── .mvn
│   └── wrapper
│       ├── MavenWrapperDownloader.java
│       ├── maven-wrapper.jar
│       └── maven-wrapper.properties
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   └── resources
    └── test
        ├── java
        └── resources

发现多了mvnwmvnw.cmd.mvn目录,我们只需要把mvn命令改成mvnw就可以使用跟项目关联的Maven。例如:

mvnw clean package

在Linux或macOS下运行时需要加上./

./mvnw clean package

Maven Wrapper的另一个作用是把项目的mvnwmvnw.cmd.mvn提交到版本库中,可以使所有开发人员使用统一的Maven版本。

 

这使您可以运行Maven项目,而无需安装Maven并将其显​​示在路径上。如果找不到正确的Maven版本(就我所知,默认情况下在你的用户主目录中),它会下载它。

mvnw文件适用于Linux(bash),mvnw.cmd适用于Windows环境。

要创建或更新所有必需的Maven Wrapper文件,请执行以下命令:

mvn -N io.takari:maven:wrapper

要使用不同版本的maven,可以按如下方式指定版本:

mvn -N io.takari:maven:wrapper -Dmaven=3.3.3

PATH如果你的项目中已经有了mvnw,你可以使用这两个命令,./mvnw而不是mvn在命令中。

Command mvnw使用默认情况下~/.m2/wrapper在第一次使用时下载的Maven 。

Maven的URL在每个项目中指定.mvn/wrapper/maven-wrapper.properties

distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip

要更新或更改Maven版本,请调用以下内容(记住关于--non-recursive多模块项目):

./mvnw io.takari:maven:wrapper -Dmaven=3.3.9 

或者只是.mvn/wrapper/maven-wrapper.properties手动修改。

使用Maven从头开始生成包装器(您需要在PATH运行时使用它:

mvn io.takari:maven:wrapper -Dmaven=3.3.9 

 

练习

从下载练习:使用mvnw编译hello项目 (推荐使用IDE练习插件快速下载)

小结

使用Maven Wrapper,可以为一个项目指定特定的Maven版本。

标签:maven,mvnw,cmd,wrapper,Maven,版本,mvn
来源: https://blog.csdn.net/adparking/article/details/114692211

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有