java - 是否应该将 mvnw 文件添加到存储库中?

标签 java spring git maven spring-boot

使用 start.spring.io 创建 spring-boot 项目时, 一些 maven 包装文件被包括在内:

  • mvnw
  • mvnw.bat

在提交到 git repo 时是否应该忽略这些文件?

最佳答案

mvnw Maven 包装脚本允许您运行 Maven 命令,而无需在 PATH 上安装和显示 Maven。它通过在您的 PATH 上查找 Maven 来实现,如果未找到,它会在默认位置(您的用户主目录,IIRC)下载并安装 Maven。

它们很方便,但它们不一定是您项目的一部分,与您的项目代码和配置不同。换句话说:

  • 任何给定的 mnvw 文件都可以用于多个不相关的项目
  • mnvw 文件几乎肯定不会因项目的一个版本与另一个版本不同而有所不同

在此基础上,您可以提出 不提交 mvnw 到您的代码存储库的理由。

但是,在您的存储库中包含 mvnw 脚本确实有以下好处:

  • 允许克隆/ checkout 您的存储库的任何人构建您的项目,而无需先安装 Maven。
  • 确保使用的 Maven 版本是与您的项目兼容的版本。

在此基础上,您可以提出将 提交 mvnw 到您的代码存储库的案例。

所以,双方各有利弊。只需选择最适合那些将使用您的 repo 协议(protocol)的人的需求。要么:

  • 在您的自述文件中包含一些内容,明确 (a) Maven 是先决条件,以及 (b) 需要哪个版本的 Maven。

... 或:

  • 包含一个 mvnw 脚本。

关于java - 是否应该将 mvnw 文件添加到存储库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47240546/

相关文章:

git - 无法在 Cygwin/Git、Windows XP 中提交 [无法识别的术语类型]

java - 从同一输入行读取整数和字符串(java)

java - 如何修复 'handleWindowVisibility: no activity for token android.os.BinderProxy' ?

java - 永远不会调用 Spring 拦截器

git - 如何在 Git 中提交和推送选定的文件但不是全部

git - 在推送到版本控制远程服务器之前检查以确保项目已编译

java - VerifyInputWhenFocusTarget 属性无效

java - 2K 显示器上的 JFileChooser 图标

没有注释的 Spring MVC - 未找到 HTTP 404 页面错误即将到来

spring - 如何为开发属性禁用 spring-cloud 配置服务器