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