如何为gradlew配置JDK以在每台计算机,每个项目的基础上使用?

时间:2018-12-11 16:30:44

标签: java git gradle gradlew

有问题的项目来自多个开源组织,其gitignores / build.gradle / gradle包装器具有多个规则。

我的默认系统范围的JDK设置为Open Java11。我想将其保留为最新的JDK。

如何覆盖单个项目的gradle包装器以使用特定的JDK?没有

  1. 使用命令行参数时,每次需要调用它时我都不会记住。
  2. 更改项目现有的gitignores,gradle包装器或已提交的buildscript /属性。
  3. 在我的本地git repo中需要不断忽略更改。

2 个答案:

答案 0 :(得分:2)

http://www.jenv.be/是一种专门用于解决此类问题的工具。

什么是jEnv?

jEnv是一个命令行工具,可帮助您忘记如何设置JAVA_HOME环境变量

可以

  • 列出托管的JDK
  • 配置全局版本
  • 配置本地版本(每个目录)
  • 配置shell实例版本

答案 1 :(得分:0)

在主目录中创建一个名为.gitignore_global的文件(如果尚不存在)(似乎是在线上的通用名称)。

添加一个条目,使您可以忽略所有项目可能未使用的文件扩展名。

#ignore all privignores
*.privignore

运行以下命令,将全局忽略文件添加到排除的git config中。

git config --global core.excludesfile ~/.gitignore_global

现在,任何git repo中以.privignore结尾的文件都将被git忽略。

在您的路径上创建一个bash脚本,对我来说,用户脚本的相关文件夹是

~/.local/bin/我将其命名为gradl

#!/bin/bash
file=jdk.privignore
if [ -f "$file" ]; then
    export JAVA_HOME=`cat jdk.privignore`
fi 
echo $JAVA_HOME
exec ./gradlew "$@"

此脚本将在调用JAVA_HOME的任何地方将环境变量jdk.privignore设置为gradl的内容。如果文件存在,可以将其改进为仅执行操作。它还将通过所有参数传递到gradlew

chmod ~/.local/bin/gradl +x将为gradl脚本提供执行位,使其可以运行。

使用sudo update-alternatives --config java查找其他可能安装的Java。

其中一个选项看起来像/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java,您需要从末尾将/jre/bin/java放到JAVA_HOME

在gradle项目的根目录中,在gradlew旁边的jdk.privignore处创建文件

将其内容设置为:/usr/lib/jvm/java-8-openjdk-amd64

现在,当调用gradl时,将导出JAVA_HOME