如何安装 gradle 和 gradlew?

如何安装 gradle 和 gradlew?

我在安装 gradlew 时遇到问题...我可以通过简单地在终端中输入“gradle”来使用 gradle 命令,但“gradlew”不起作用。我使用以下方法安装了 gradle

sudo apt install gradle

并且安装成功。我必须使用“sudo gradle”而不是“gradle”,因为当我不使用 sudo 时会显示这个。

icebunny08@D3CRYPT3D:~$ gradle
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.gradle.internal.reflect.JavaMethod (file:/usr/share/gradle/lib/gradle-base-services-3.4.1.jar) to method java.lang.ClassLoader.getPackages()
WARNING: Please consider reporting this to the maintainers of org.gradle.internal.reflect.JavaMethod
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Starting a Gradle Daemon (subsequent builds will be faster)
:help

Welcome to Gradle 3.4.1.

To run a build, run gradle <task> ...

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 <task>

BUILD SUCCESSFUL

Total time: 5.017 secs

我的问题是,我是否正确安装了 Gradle,为什么我不能使用“gradlew”命令。这是我使用“gradlew”时的输出。

icebunny08@D3CRYPT3D:~$ gradlew

Command 'gradlew' not found, did you mean:

  command 'gradle' from deb gradle

Try: sudo apt install <deb name>

答案1

运行 gradle 命令时出现的警告是由于 JDK 9 或更高版本存在一些 groovy 问题,如下所述这里

如果这些警告对您来说是一个问题,您可以使用描述的解决方法使它们消失:

您可以向 java 引导脚本或 JAVA_OPTS 添加以下参数来抑制此警告:

--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED


现在讨论 gradlew。

Gradlew 是 gradle 的包装器。它绑定到项目,而不是您的工作站。换句话说,您开发的每个 gradle 项目都可以有一个 graddle 包装器。gradlew 的目的是使项目可移植(即开发人员不需要在他们的工作站上安装 gradle)和可靠(即每个人都使用相同版本的 gradle)。包装器脚本将为您的项目下载指定版本的 gradle,然后运行它。这一切都在他们的文件

在您的案例中,您所做的就是在工作站上全局安装 gradle。gradle 安装不附带 gradlew,因为 gradlew 需要添加到您选择的每个 gradle 项目中,如所述这里。您只需在项目中运行以下命令:

gradle wrapper

这将为您的 gradle 项目创建包装器脚本。显然,您需要安装 gradle 才能运行此命令(您已经安装了它),但如果您提交结果并与其他开发人员共享,他们无需安装 gradle 即可使用 gradlew 脚本。

就您而言,最终会得到两种可能性:

  • 在你的项目中运行 gradle 命令,例如gradle clean。你可以这样做,因为你手动全局安装了 gradle
  • 在您的项目中运行 gradlew 命令,例如。您可以这样做,因为您首先gradlew clean使用 创建了包装器脚本。gradle wrapper

如果 gradle 版本相同,则两者都应该给出相同的结果。

相关内容