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

我们使用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版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值