一文搞懂Maven Wrapper

2 篇文章 0 订阅

介绍

Maven Wrapper是受到Gradle Wrapper的启发而来的。它使Maven的一些配置 wrap 到项目里面,同时赋予了项目使用执行Maven版本的能力。

安装

  • 方式一:在项目根目录下执行:
mvn -N io.takari:maven:0.7.6:wrapper

执行后,会在项目跟路径下生成mvnw,mvnw.cmd两个文件 及一个 .mvn/wrapper 目录。

注:

  • 参数N(non-recursive)是指不在每个子模块中生成文件,只在当前目录下生成。
  • 此方式需要提前安装Maven
  • 方式二:从别的项目中将mvnw和mvnw.cmd文件以及.mvn目录copy过来

    copy过来后,执行任何mvnw命令都会先下载Maven环境。

maven环境都会下载到${home}/.m2/dist目录下。

如果需要修改Maven版本,只需要修改项目下的 .mvn/wrapper/maven-warper.properties文件即可:

distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.1/apache-maven-3.6.1-bin.zip

mvnw会在每次执行命令时检测${home}/.m2/wrapper/dists目录下是否有maven-wrapper.properties中指定Maven版本,如果没有就自动下载。

使用

和使用mvn指令一样,只需要将Maven命令中的mvn替换成./mvnw即可。例如以前运行的mvn clean,现在运行./mvnw clean就可以了。

windown系统下还可以使用 .\mvnw.\mvnw.cmd

Maven配置

通常我们都会使用自己的私服,还会将一些通用的profile配置到settings.xml文件中。
在使用maven wrapper时,settings.xml只有放在 ${home}/.m2/目录下才会起效。

jvm配置

在项目的.mvn/wrapper目录下增加 jvm.config文件,通过配置该文件指定maven执行时如何使用jvm。例如:

-Xmx4G -Xms2G -Duser.timezone=GMT+08

此功能一般用不上。

总结

站在Maven3发展多年后的今天,对一个企业内部研发团队来说,除了 可以不安装maven+不用配置path 能给研发提供帮助外,其他功能感觉意义不大。

  • 当升级Maven版本时,如果用户管理多个项目,可能就需要一个一个的修改maven版本
  • 对使用统一构建环境的场景,可能不适用。比如不同的maven版本可能使构建机的配置失效;另外,构建机可能不能访问外网等。

综上,如果要是用mvnw,建议只在研发本地使用,在统一的构建环境中仍使用mvn

Maven是一个项目管理和构建工具,它可以帮助开发人员自动化构建、测试和部署Java项目。它使用一个中央仓库来管理项目的依赖关系,并提供了一套标准的构建生命周期和插件来执行各种任务。 Maven Archetype是Maven的一个插件,用于创建项目的原型。它提供了一种快速创建项目结构的方式,可以根据预定义的模板生成项目的基本结构和配置文件。Maven默认提供了一些archetype供选择,例如maven-archetype-webapp用于创建Web应用程序的基本结构。 要创建一个基于archetype的Maven项目,可以按照以下步骤进行操作: 1. 首先,确保已经安装了Maven。可以在命令行中运行`mvn -v`来检查Maven的版本。 2. 创建一个新的Maven项目。可以使用以下命令: ```shell mvn archetype:generate -DgroupId=com.example -DartifactId=my-project -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false ``` 这将创建一个基于maven-archetype-webapp的Maven项目,其中`com.example`是项目的groupId,`my-project`是项目的artifactId。 3. 进入项目目录: ```shell cd my-project ``` 4. 确定项目结构和配置文件的内容。 5. 执行以下命令将项目生成为archetype类型项目: ```shell mvn archetype:create-from-project ``` 生成的archetype项目将保存在`target/generated-sources/archetype`目录中。可以将该archetype项目安装到本地仓库或上传到远程仓库,以便其他开发人员可以使用它来创建新的项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值