gradle と gradlew をインストールするにはどうすればいいですか?

gradle と gradlew をインストールするにはどうすればいいですか?

gradlewのインストールで問題が発生しています...ターミナルで「gradle」と入力するだけでgradleコマンドを使用できますが、「gradlew」では何も実行されません。gradleをインストールしました。

sudo apt install gradle

そして、正常にインストールされました。sudo を使用しないとこれが表示されるため、「gradle」ではなく「sudo gradle」を使用する必要があります。

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 プロジェクトには Gradle ラッパーが付属している可能性があります。Gradlew の目的は、プロジェクトをポータブル (つまり、開発者がワークステーションに Gradle をインストールする必要がない) かつ信頼できる (つまり、すべてのユーザーが同じバージョンの Gradle を使用できる) ようにすることです。ラッパー スクリプトは、プロジェクトに指定されたバージョンの Gradle をダウンロードして実行します。これはすべて、彼らの文書

あなたの場合、ワークステーションにGradleをグローバルにインストールしました。GradleのインストールにはGradlewは付属していません。Gradlewは、説明したように、選択したすべてのGradleプロジェクトに追加する必要があるためです。ここプロジェクトで次のコマンドを実行するだけです。

gradle wrapper

これにより、Gradle プロジェクトのラッパー スクリプトが作成されます。当然、このコマンドを実行するには Gradle がインストールされている必要があります (すでにインストールされています)。ただし、結果をコミットして他の開発者と共有すると、開発者は Gradle をインストールせずに gradlew スクリプトを使用できます。

あなたの場合、2 つの可能性が考えられます。

  • プロジェクト内でGradleコマンドを実行しますgradle clean。Gradleを手動でグローバルにインストールしたので、これが実行できます。
  • プロジェクト内で gradlew コマンドを実行します (例: ) 。最初に でgradlew cleanラッパー スクリプトを作成したため、これが実行できます。gradle wrapper

Gradle バージョンが同じであれば、どちらも同じ結果が得られるはずです。

関連情報