如何安装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>

不要使用打包版本的Gradle。它真的很老了。 - Ben Mathews
1你需要在你的项目中执行 ./gradlew 或者 sh gradlew - Mayra Delgado
1个回答

运行gradle命令时出现的警告是由于JDK 9或更高版本的一些Groovy问题引起的,详见这里
如果这些警告对您有影响,您可以使用下面描述的解决方法来消除它们:
引导脚本或JAVA_OPTS中添加以下参数以抑制此警告: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED
现在来说说gradlew。
Gradlew是gradle的包装器。它绑定到一个项目,而不是你的工作站。换句话说,你开发的每个gradle项目都可以附带一个gradle包装器。 Gradlew的目的是使项目具有可移植性(即开发人员无需在工作站上安装gradle)和可靠性(即每个人使用相同版本的gradle)。 包装脚本将为您的项目下载指定版本的gradle,然后运行它。这一切都在他们的文档中有详细描述。
在你的情况下,你在你的工作站上全局安装了gradle。gradle安装不会附带gradlew,因为gradlew需要添加到你选择的每个gradle项目中,如此处所述。你只需在你的项目中运行以下命令:
gradle wrapper

这将为您的Gradle项目创建包装脚本。显然,您需要已安装gradle来运行此命令(您已经安装了它),但如果您提交结果并与其他开发人员共享,他们可以使用gradlew脚本而不必安装gradle。
在您的情况下,您有两种可能性:
1. 在您的项目中运行gradle命令,例如`gradle clean`。您可以这样做是因为您手动全局安装了gradle。 2. 在您的项目中运行gradlew命令,例如`gradlew clean`。您可以这样做是因为您首先使用`gradle wrapper`创建了包装脚本。
如果gradle版本相同,这两种方式应该会产生相同的结果。