質問: 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>
回答: here で説明されているように、gradleコマンドの実行時に発生する警告は、jdk 9以降でのgroovyの問題によるものです。これらの警告が問題である場合は、説明されている回避策を使用してそれらを非表示にすることができます。 この警告を抑制するには、java bootstrapスクリプトまたはjava_optsに次の引数を追加できます。 --add-opens = java.base/java.lang = all-unnamed --add-opens = java.base/java.lang.invoke = all-unnamed gradlewについて。gradlewは、gradleのラッパーです。ワークステーションではなく、プロジェクトにバインドされています。言い換えれば、開発する各gradleプロジェクトには、グラドルラッパーが付属している場合があります。 gradlewの目的は、プロジェクトを移植可能(つまり、開発者がワークステーションにgradleをインストールする必要がない)、信頼性の高い(つまり、すべてのユーザーに同じバージョンのgradle)にすることです。ラッパースクリプトは、プロジェクトに指定されたバージョンのgradleをダウンロードして実行します。これはすべて それらのドキュメント で説明されています。このケースで行ったことは、ワークステーションにgradleをグローバルにインストールすることです。 here のように、選択したすべてのgradleプロジェクトにgradlewを追加する必要があるため、gradleのインストールにはgradlewが付属していません。プロジェクトで次のコマンドを実行するだけです。gradle wrapper これにより、gradleプロジェクトのラッパースクリプトが作成されます。明らかに、このコマンドを実行するにはgradleをインストールする必要があります(既にインストール済みです)が、結果をコミットして他の開発者と共有する場合、gradleをインストールせずにgradlewスクリプトを使用できます。あなたの場合、次の2つの可能性があります。 gradle cleanなどのプロジェクトでgradleコマンドを実行します。手動でgradleをグローバルにインストールしたため、これを行うことができます プロジェクトでgradlew cleanなどのgradlewコマンドを実行します。そもそもgradle wrapperを使用してラッパースクリプトを作成したため、これを行うことができます。 gradleバージョンが同じ場合、両方とも同じ結果を与えるはずです。