Как установить 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 или более поздней версией, как описаноздесь.

Если эти предупреждения представляют для вас проблему, вы можете воспользоваться описанным обходным решением, чтобы заставить их исчезнуть:

Чтобы подавить это предупреждение, можно добавить следующие аргументы в скрипт начальной загрузки Java или JAVA_OPTS:

--add-opens=java.base/java.lang=ВСЕ-БЕЗИМЕННЫЕ --add-opens=java.base/java.lang.invoke=ВСЕ-БЕЗИМЕННЫЕ


Теперь о градлеве.

Gradlew — это оболочка вокруг gradle. Она привязана к проекту, а не к вашей рабочей станции. Другими словами, каждый проект gradle, который вы разрабатываете, может иметь оболочку gradle, поставляемую вместе с ним. Цель gradlew — сделать проект переносимым (т. е. разработчикам не нужно устанавливать gradle на свою рабочую станцию) и надежным (т. е. одна и та же версия gradle для всех). Скрипт оболочки загрузит указанную версию gradle для вашего проекта, а затем запустит ее. Все это описано вих документация.

В вашем случае вы установили Gradle на своей рабочей станции глобально. Установка Gradle не идет с Gradlew, так как Gradlew необходимо добавить в каждый проект Gradle по вашему выбору, как описаноздесь. Вам просто нужно выполнить следующую команду в вашем проекте:

gradle wrapper

Это создаст скрипт-обертку для вашего проекта gradle. Очевидно, что для запуска этой команды вам нужно установить gradle (вы уже установили его), но если вы зафиксируете результат и поделитесь им с другими разработчиками, они смогут использовать скрипт gradlew без установки gradle.

В вашем случае у вас есть две возможности:

  • запустите команды gradle в своем проекте, например gradle clean. Вы можете сделать это, поскольку вы вручную установили gradle глобально
  • запустите команды gradlew в своем проекте, например gradlew clean. Вы можете сделать это, поскольку вы создали скрипт-обертку gradle wrapperв первую очередь.

Оба варианта должны дать одинаковый результат, если версия Gradle одинакова.

Связанный контент