安装包下载
wget https://downloads.gradle.org/distributions/gradle-4.10.2-bin.zip
安装
解压缩
unzip gradle-4.10.2-bin.zip
移动到usr目录下:
mv gradle-4.10.2 /usr
配置环境变量。
sudo vim /etc/profile
追加到profile后面。
export GRADLE_HOME=/usr/gradle-4.10.2
export PATH=${GRADLE_HOME}/bin:${PATH}
最后,变量生效:
source /etc/profile
bug1
ERROR: JAVA_HOME is set to an invalid directory
如下图:
但是实际上,这个路径是有jdk的,那么为什么会出这种错呢?
根据网上的资料,我们打开gradle文件看看。
gradle上面有判断的语句。。嗯。。。还是不得其解。。。
这个判断没问题。。。。
偶尔看到Stack Overflow的说法:
Gradle finds wrong JAVA_HOME even though it’s correctly set
I had the same problem, but I didnt find export command in line 70 in gradle file for the latest version 2.13, but I understand a silly mistake there, that is following,
If you don't find line 70 with export command in gradle file in your gradle folder/bin/ , then check your ~/.bashrc, if you find export JAVA_HOME==/usr/lib/jvm/java-7-openjdk-amd64/bin/java, then remove /bin/java from this line, like JAVA_HOME==/usr/lib/jvm/java-7-openjdk-amd64, and it in path>>> instead of this export PATH=$PATH:$HOME/bin:JAVA_HOME/, it will be export PATH=$PATH:$HOME/bin:JAVA_HOME/bin/java. Then run source ~/.bashrc.
The reason is, if you check your gradle file, you will find in line 70 (if there's no export command) or in line 75,
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
That means /bin/java is already there, so it needs to be substracted from JAVA_HOME path.
That happened in my case.
受这个启发,我们来追踪一下变量的情况。
好了,我们从gradle的脚本可以看到,javacmd是一个关键变量,假如javacmd没有赋值就会报invalid 目录错误的。
而且我们可以得到java home的值,所以我们推算得到:
情况1 的路径:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre/sh/java
情况2的路径:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/bin/java
我们来看看实际上的目录路径情况:
好了,我们服务器的实际情况竟然是。。。
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre/bin/java
压根与gradle的预设情况不一样。。。
所以,后续如何修改已经明了吗?改改shell脚本,然后添加一个判断即可,如下图:
然后试一试:
copy和编译java文件乱码问题
场景:
复制然后替换掉变量以后,结果发现中文都变乱码了。
原文件:
现文件:
解决方案:
解决: 修改GRADLE_HOME/bin/gradle(windows系统中是gradle.bat)中的变量DEFAULT_JVM_OPTS
DEFAULT_JVM_OPTS="-Dfile.encoding=UTF-8"
即,在这个文件,
改为:
然后,
gradle compileConfig
可以看到: