使用gradlew和gradle的区别

543 阅读2分钟

Gradle任务是用gradlegradlew 命令运行的。

Gradlew是gradle命令的一个包装器。

本教程讲述了gradlew和gradle命令之间的区别。

你能用Gradle命令做什么?

如果你的机器已经安装了gradle,那么gradle命令的作用如下:

它给出了本地机器上安装的gradle版本

C:\>gradle

> Task :help

Welcome to Gradle 6.0.1.

To run a build, run gradle  ...

To see a list of available tasks, run gradle tasks

To see a list of command-line options, run gradle --help

To see more detail about a task, run gradle help --task 

For troubleshooting, visit https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.0.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 1s
1 actionable task: 1 executed

在本地机器上安装了gradle,你可以做以下事情。

  • 你可以用下面的命令创建一个新的项目

它创建一个新的项目,要求用户输入项目类型和构建脚本。

B:\kiranw>gradle init

Select type of project to generate:
  1: basic
  2: application
  3: library
  4: Gradle plugin
Enter selection (default: basic) [1..4]


Select build script DSL:
  1: Groovy
  2: Kotlin
Enter selection (default: Groovy) [1..2]

Project name (default: kiranw):

> Task :init
Get more help with your project: https://guides.gradle.org/creating-new-gradle-builds

BUILD SUCCESSFUL in 1m 4s
2 actionable tasks: 2 executed
  • 你可以在项目中添加带有gradle命令的包装器
gradle wrapper --gradle-version 7.1.1
  • 你可以运行gradle的任务列表
gradle tasks
  • 你可以用下面的命令运行构建或测试项目
gradle test
gradle build

Gradle包装器

gradle wrapper 在linux中使用./gradlew命令,在windows中使用gradlew命令来运行。

gradle wrapper --gradle-version 7.1.1

这是一个安装了特定版本的gradle项目的一部分

它在一个项目中做以下事情

  • 检查gradle是否存在,如果不存在就用正确的gradle版本进行内联安装
  • 调用gradle任务

gradle-wrapper.properties包含gradle包装器的配置信息

gradle wrapper命令将包装器添加到gradle项目中,下面是一个项目结构。

└── <project folder>
    └── gradlew
    └── gradlew.bat
    └── build.gradle
    └── 
    └── 
    └── gradle
        └── wrapper
            └── gradle-wrapper.jar
            └── gradle-wrapper.properties

gradle和gradlew命令的比较

gradlewgradlew
安装和运行是手动的Gradle的安装默认是这样做的
本地机器有单一版本每个项目可以配置不同的版本
需要在本地安装不需要本地安装
所有的任务都可以用这个命令运行除了项目的初始化,其他任务都可以执行
build、test、init、wrapper和任何本地任务init和wrapper任务不工作,其他构建、测试和本地任务可以工作
gradle设置将不会配置到版本库中好的方法是将包装器文件提交到版本库。

总结

在本教程中,学习了gradlew和gradle命令的区别

除了在gradle wrapper中不能初始化和添加wrapper外,两者是相同的。