Como instalar gradle e gradlew?

2

Estou tendo problemas ao instalar gradlew ... Eu posso usar o comando gradle simplesmente digitando "gradle" no Terminal, mas "gradlew" não faz nada. Eu instalei gradle usando

sudo apt install gradle

E instalado com sucesso. Eu tenho que usar "sudo gradle" e não "gradle" porque isso aparece quando eu não uso o 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

Meus problemas são se eu instalei o Gradle corretamente, e porque não posso usar o comando "gradlew". Esta é a saída quando eu uso "gradlew".

icebunny08@D3CRYPT3D:~$ gradlew

Command 'gradlew' not found, did you mean:

  command 'gradle' from deb gradle

Try: sudo apt install <deb name>
    
por icebunny08 07.06.2018 / 06:46

1 resposta

1

Os avisos que você tem ao executar o comando gradle são devido a algum problema interessante com o JDK 9 ou posterior, conforme descrito aqui .

Se esses avisos forem um problema para você, use a solução descrita para fazê-los desaparecer:

You can add the following arguments to java bootstrap script or JAVA_OPTS to suppress this warning:

--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED

Agora, sobre gradlew.

Gradlew é um wrapper em torno do gradle. Está ligado a um projeto, não a sua estação de trabalho. Em outras palavras, cada projeto gradle que você desenvolve pode ter um wrapper graduado vindo com ele. O objetivo do gradlew é tornar o projeto portátil (ou seja, os desenvolvedores não precisam instalar o gradle em sua estação de trabalho) e confiável (ou seja, a mesma versão do gradle para todos). O script do wrapper fará o download da versão especificada do gradle para o seu projeto e, em seguida, o executará. Tudo isso está descrito na documentação deles .

O que você fez no seu caso é instalar o gradle em sua estação de trabalho, globalmente. a instalação do gradle não vem com o gradlew, já que o gradlew precisa ser adicionado a cada projeto gradle de sua escolha, conforme descrito aqui . Você simplesmente precisa executar o seguinte comando em seu projeto:

gradle wrapper

Isso criará o script de wrapper para o seu projeto gradle. Obviamente, você precisa que o gradle seja instalado para executar esse comando (você já o instalou), mas se você confirmar o resultado e compartilhá-lo com outros desenvolvedores, ele poderá usar o script gradlew sem instalar o gradle.

No seu caso, você acaba com duas possibilidades:

  • execute os comandos gradle no seu projeto, como gradle clean . Você pode fazer isso porque instalou manualmente o gradle globalmente
  • execute os comandos gradlew em seu projeto, como gradlew clean . Você pode fazer isso porque criou o script de wrapper com gradle wrapper em primeiro lugar.

Ambos devem dar o mesmo resultado se a versão do gradle for a mesma.

    
por O Ducarme 07.06.2018 / 08:17