Как установить 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>
3
задан 7 June 2018 в 07:46

1 ответ

Предупреждения, которые Вы имеете при выполнении gradle команды, происходят из-за некоторой отличной проблемы с JDK 9 или позже, как описано здесь.

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

Можно добавить следующие аргументы сценарию начальной загрузки 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, который будет установлен для выполнения этой команды (Вы уже установили его), но если Вы фиксируете результат и совместно используете его с другими разработчиками, они могут использовать gradlew сценарий, не устанавливая gradle.

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

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

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

4
ответ дан 1 December 2019 в 15:49

Другие вопросы по тегам:

Похожие вопросы: