Não consigo descobrir para fazer isso funcionar.
Cenário:
- Eu tenho um aplicativo criado com gradle
- O aplicativo usa JavaFX
O que eu quero
- Use uma variável (definida por máquina do desenvolvedor) que aponte para a instalação de um JDK que será usado para criar todo o aplicativo / testes / ...
Pensei em ter o gradle.properties
arquivo, definindo a variável. Algo como
JAVA_HOME_FOR_MY_PROJECT=<path to my desired JDK>
O que eu não quero
- aponte
JAVA_HOME
para o JDK desejado
Eu poderia viver com muitas sugestões:
- uma solução que define uma variável de ambiente do sistema que eu posso verificar no meu script build.gradle
- uma variável definida em gradle.properties
- substituindo a variável JAVA_HOME apenas para o contexto de construção (algo como
use JAVA_HOME=<my special JDK path defined somewhere else defined>
) - outra coisa que eu não pensei
Questão:
- Como conectar uma variável (como já definida, como variável na
gradle.properties
variável de ambiente do sistema, ...) ao processo de compilação?
Eu tenho mais de um JDK7 disponível e preciso apontar para uma versão especial (versão mínima do JDK_u).
Qualquer resposta é apreciada e sou grata por cada dica na direção certa.
java
gradle
build.gradle
valentão
fonte
fonte
org.gradle.java.home
nogradle.properties
arquivo? linkorg.gradle.java.home
configuração se aplica apenas ao gradle daemon, aparentemente ... De qualquer forma, tente definir fork como true e forkOptions.executable para o jdk que você deseja usar: linkRespostas:
Dois caminhos
gradle.properties
no.gradle
diretório em seuHOME_DIRECTORY
conjuntoorg.gradle.java.home=/path_to_jdk_directory
ou:
Na tua
build.gradle
fonte
gradle.properties
pode ser definido ao nível do projecto também, ver gradle.org/docs/current/userguide/build_environment.html./gradlew -Dorg.gradle.java.home=/path_to_jdk_directory
. Bom se você não quiser tocargradle.properties
.Se você adicionar JDK_PATH em gradle.properties, sua construção se tornará dependente desse caminho específico. Em vez disso, execute a tarefa gradle com o seguinte parâmetro de linha de comando
Dessa forma, sua compilação não depende de algum caminho concreto.
fonte
/usr/lib/java/jdk/home
que aponta para a versão atual instalada. É claro que quando você deseja uma versão específica (por exemplo, u51), precisa ser específico sobre o caminho. Além disso, algumas ferramentas que desejam iniciar o gradle não parecem definir o JDK no ambiente que dão ao gradle. E eu nunca defini o JDK como o JAVA_HOME atual, a menos que seja uma sessão de desenvolvimento.PROGRA~1
(todas em maiúsculas) ou o que mais o DIR / X informar."... gradle itself (either standalone distribution or wrapper) uses JDK from JAVA_HOME environment variable or (if it is not set) from PATH".
Especifiquei o JAVA_HOME antes da chamada gradlew para corrigir isso. (ie.env JAVA_HOME=/path/to/java gradlew war --stacktrace
)Para as pessoas que terminam aqui ao pesquisar o equivalente Gradle da propriedade Maven
maven.compiler.source
(ou<source>1.8</source>
):No build.gradle, você pode conseguir isso com
Veja a documentação da Gradle sobre isso .
fonte
Se você estiver executando usando o gradle wrapper, poderá executar o comando com o caminho JDK, como a seguir
./gradlew -Dorg.gradle.java.home=/jdk_path_directory
fonte
Se você estiver usando o linux e o gradle wrapper, poderá usar a seguinte solução.
Inclua o caminho no arquivo local.properties:
Adicione ao seu arquivo de script gradlew:
Nesta solução, cada desenvolvedor pode definir seu próprio caminho JDK. O arquivo
local.properties
não deve ser incluído no sistema de controle de versão.fonte
Adicionei esta linha no meu arquivo GRADLE_HOME / bin / gradle -
export JAVA_HOME=/path/to/java/version
fonte
Há mais uma opção a seguir. Nas tarefas de classificação, você pode definir o caminho jdk desejado. (Eu sei que já faz um tempo desde que a pergunta foi publicada. Esta resposta pode ajudar alguém.)
Clique com o botão direito do mouse na implantação ou em qualquer outra tarefa e selecione "Abrir configuração de execução do gradle ..."
Em seguida, navegue até "Java Home" e cole o caminho java desejado.
Observe que bin será adicionado pela própria tarefa gradle. Portanto, não adicione o "bin" ao caminho.
fonte
existe um plugin Gradle que faz o download / bootstraps automaticamente de um JDK:
https://plugins.gradle.org/plugin/com.github.rmee.jdk-bootstrap
Nenhuma integração IDE ainda e um shell decente necessário no Windows.
fonte
Para o Windows, execute a tarefa gradle com o parâmetro de caminho do jdk 11 entre aspas
fonte
Como visto em Gradle (plugin Eclipse)
http://www.gradle.org/get-started
Se você estiver usando este plug-in do Eclipse ou o Enide Studio 2014 , o JAVA_HOME alternativo a ser usado (definido em Preferências) estará na versão 0.15, consulte http://www.nodeclipse.org/history
fonte
Estou usando o Gradle 4.2. O JDK padrão é Java 9. No início do Java 9, o Gradle 4.2 é executado no JDK 8 corretamente (não no JDK 9).
Defino o JDK manualmente assim, no arquivo
%GRADLE_HOME%\bin\gradle.bat
:fonte
Se você estiver usando o JDK 9+, poderá fazer o seguinte:
Você também pode ver os seguintes problemas relacionados:
-release
argumento do compiladorfonte
Android Studio
Arquivo> Estrutura do projeto> Local do SDK> Local do JDK>
GL
Instale o JDK
fonte
Se você estiver usando o Kotlin DSL,
build.gradle.kts
adicione:Claro, estou supondo que você tenha o sistema operacional Windows e o
javac
compilador esteja no caminhoC:\bin\jdk-13.0.1\bin\javac
. Para Linux OS será similar.fonte
Se você quiser apenas configurá-lo uma vez para executar um comando específico:
fonte