【我的Android进阶之旅】Linux下学习.gradle目录

2018-12-06  本文已影响14人  欧阳鹏

一、背景描述

上一篇文章 【Jenkins学习 】解决Jenkins节点断开不可用,报错:Disk space is too low. Only 0.803GB left on /tmp. 里面说了,因为 / 根目录磁盘空间不足导致Jenkins编译节点服务器不可用。

在这里插入图片描述

查看下 / 根目录下面有哪些占用磁盘比较大的内容,如下所示:

[root@localhost /]#  du -h --max-depth=1 /
4.0K    /mnt
7.7M    /bin
0   /net
4.0K    /home
8.6G    /root
0   /selinux
343G    /data
291M    /glibc-build-2.14
41M /lib64
4.0K    /media
0   /misc
232K    /dev
4.2G    /usr
155M    /lib
16K /lost+found
3.5G    /opt
29M /boot
39M /etc
784K    /tmp
20M /sbin
812M    /var
0   /cgroup
146M    /glibc-2.18
du: 无法访问"/proc/13912/task/13912/fd/4": 没有那个文件或目录
du: 无法访问"/proc/13912/task/13912/fdinfo/4": 没有那个文件或目录
du: 无法访问"/proc/13912/fd/4": 没有那个文件或目录
du: 无法访问"/proc/13912/fdinfo/4": 没有那个文件或目录
0   /proc
136M    /glibc-2.14
12K /.dbus
4.0K    /srv
0   /sys
360G    /

在这里插入图片描述

看下 /root目录下有什么

[root@localhost /]# du -h --max-depth=1 /root
4.0K    /root/文档
4.0K    /root/视频
4.0K    /root/模板
144K    /root/.pulse
36K /root/bin
8.0K    /root/.pki
4.0K    /root/.gvfs
48K /root/.config
4.0K    /root/.nautilus
188K    /root/.cache
144K    /root/.local
384K    /root/.gstreamer-0.10
211M    /root/桌面
256K    /root/.m2
24K /root/.repoconfig
32K /root/.gnome2
8.0K    /root/.ssh
80K /root/.gconfd
4.0K    /root/下载
4.0K    /root/.abrt
3.9G    /root/.android
16K /root/.gnote
4.0K    /root/音乐
12K /root/.dbus
284K    /root/.gconf
16K /root/.gnupg
4.0K    /root/图片
40M /root/.jenkins
4.0K    /root/公共的
4.5G    /root/.gradle
4.0K    /root/software
8.6G    /root
[root@localhost /]# 

在这里插入图片描述

二 .gradle目录

2.1 顶级目录

进入 /root/.gradle目录查看下,如下所示:


在这里插入图片描述
[root@localhost /]# cd /root/.gradle/
[root@localhost .gradle]# ll
总用量 16
drwxr-xr-x. 12 root root 4096 8月   1 19:37 caches
drwxr-xr-x.  7 root root 4096 7月   4 11:34 daemon
drwxr-xr-x.  6 root root 4096 4月  18 2018 native
drwxr-xr-x.  2 root root 4096 4月  18 2018 workers
[root@localhost .gradle]# 

分为caches 、daemon 、native 、wrapper 四个目录,如下所示:

目录 功能
caches gradle缓存目录
daemon daemon日志目录
native gradle平台相关目录
workers 未知,我这边是空目录

2.2 caches目录

下面来看一看 caches目录的情况,如下所示:

[root@localhost .gradle]# cd caches/
[root@localhost caches]# ll
总用量 40
drwxr-xr-x.  9 root root 4096 12月 14 2017 2.14.1
drwxr-xr-x.  6 root root 4096 5月  14 15:17 3.0
drwxr-xr-x.  6 root root 4096 4月  11 2018 3.3
drwxr-xr-x.  9 root root 4096 4月  18 2018 4.1
drwxr-xr-x.  8 root root 4096 7月   4 11:34 4.3
drwxr-xr-x. 10 root root 4096 8月   1 19:37 external-resources
drwxr-xr-x.  2 root root 4096 4月  11 2018 jars-2
drwxr-xr-x.  2 root root 4096 4月  18 2018 jars-3
drwxr-xr-x.  7 root root 4096 7月   4 11:34 modules-2
drwxr-xr-x.  4 root root 4096 4月  18 2018 transforms-1
[root@localhost caches]# 

在这里插入图片描述
目录 功能
2.14.1 gradle程序的脚本(gradle程序版本)
3.0 gradle程序的脚本(gradle程序版本)
3.3 gradle程序的脚本(gradle程序版本)
4.1 gradle程序的脚本(gradle程序版本)
4.3 gradle程序的脚本(gradle程序版本)
external-resources 未知
jars-2 未知
jars-3 未知
modules-2 下载缓存目录
transforms-1 好像是下载缓存目录
在这里插入图片描述

2.2.1 caches/modules-2目录

在这里插入图片描述
目录 功能
files-2.1 gradle下载的jar目录
metadata-2.16 gradle-2.14.1的描述文件 (不确定)
metadata-2.23 gradle-3.2.1的描述文件 (不确定)
... ...

files-2.1的目录组织

{org}/{package}/{version}/{shanum1}/{package-version}.pom{org}/{package}/{version}/{shanum2}/{package-version}.jar
{org}/{package}/{version}/{shanum2}/${package-version}.aar

例如: com.android.support:recyclerview-v7:27.1.1.aar对应的缓存为:

/root/.gradle/caches/modules-2/files-2.1/com.android.support/recyclerview-v7/27.1.1/3e9da1c78ef9fac192ff9e614b1c8e943cd9dd89/recyclerview-v7-27.1.1.aar

描述文件 recyclerview-v7-27.1.1.pom 对应着

/root/.gradle/caches/modules-2/files-2.1/com.android.support/recyclerview-v7/27.1.1/bf17224266bac78bb12fe4089fb1654eaa370af7/recyclerview-v7-27.1.1.pom

在这里插入图片描述

lint-gradle-api-26.0.1.jar 对应着:

/root/.gradle/caches/modules-2/files-2.1/com.android.tools.lint/lint-api/26.0.1/2d4dd9f4676fbb152e4baf6f6f4cbbb868521832/lint-api-26.0.1.jar

描述文件 lint-api-26.0.1.pom 对应着

/root/.gradle/caches/modules-2/files-2.1/com.android.tools.lint/lint-api/26.0.1/939c08ec1fd74659d4a47d849d0376e1b1b88988/lint-api-26.0.1.pom

在这里插入图片描述

2.3 daemon目录(无需离线)

用于存放gradle daemon的运行日志。按gradle程序版本存放。

[root@localhost .gradle]# cd daemon/
[root@localhost daemon]# ll
总用量 92
drwx------. 2 root root  4096 9月  18 14:18 2.14.1
drwx------. 2 root root  4096 5月  14 15:17 3.0
drwx------. 2 root root  4096 4月  11 2018 3.3
drwx------. 2 root root 73728 11月  7 14:40 4.1
drwx------. 2 root root  4096 9月  20 14:09 4.3

在这里插入图片描述
目录 功能
2.14.1 gradle-2.14.1运行的日志
3.0 gradle-3.0运行的日志
3.3 gradle-3.3运行的日志
4.1 gradle-4.1运行的日志
4.3 gradle-4.3运行的日志
在这里插入图片描述

2.4 native目录(无需离线)

用于存放平台相关(Win/Linux/Mac)的库。

[root@localhost 4.3]# cd ../../native/
[root@localhost native]# pwd
/root/.gradle/native
[root@localhost native]# ll
总用量 16
drwxr-xr-x. 3 root root 4096 12月 14 2017 19
drwxr-xr-x. 4 root root 4096 4月  11 2018 23
drwxr-xr-x. 4 root root 4096 4月  18 2018 25
drwxr-xr-x. 3 root root 4096 4月  11 2018 jansi
[root@localhost native]# 

在这里插入图片描述
目录 功能
19 gradle-2.14.1对应的lib目录,按平台存放,如osx-amd64
21 gradle-3.2.1对应的lib目录,按平台存放,如osx-amd64
jansi 未知,看目录也是存放一些so
在这里插入图片描述 在这里插入图片描述
[root@localhost 4.3]# cd ../../native/
[root@localhost native]# pwd
/root/.gradle/native
[root@localhost native]# ll
总用量 16
drwxr-xr-x. 3 root root 4096 12月 14 2017 19
drwxr-xr-x. 4 root root 4096 4月  11 2018 23
drwxr-xr-x. 4 root root 4096 4月  18 2018 25
drwxr-xr-x. 3 root root 4096 4月  11 2018 jansi
[root@localhost native]# cd 19/
[root@localhost 19]# ll
总用量 4
drwxr-xr-x. 2 root root 4096 12月 14 2017 linux-amd64
[root@localhost 19]# cd linux-amd64/
[root@localhost linux-amd64]# ll
总用量 56
-rw-r--r--. 1 root root 21873 12月 14 2017 libnative-platform-curses.so
-rw-r--r--. 1 root root     1 12月 14 2017 libnative-platform-curses.so.lock
-rw-r--r--. 1 root root 23965 12月 14 2017 libnative-platform.so
-rw-r--r--. 1 root root     1 12月 14 2017 libnative-platform.so.lock
[root@localhost linux-amd64]# 

[root@localhost linux-amd64]# cd ../../jansi/
[root@localhost jansi]# ll
总用量 4
drwxr-xr-x. 3 root root 4096 4月  11 2018 1.14
[root@localhost jansi]# cd 1.14/
[root@localhost 1.14]# ll
总用量 4
drwxr-xr-x. 2 root root 4096 4月  11 2018 linux64
[root@localhost 1.14]# cd linux64/
[root@localhost linux64]# ll
总用量 56
-rw-r--r--. 1 root root 54754 4月  11 2018 libjansi.so
[root@localhost linux64]# 


2.5 work目录

work目录的作用未知,这边看起来是空目录。

在这里插入图片描述

三、修改Gradle缓存文件夹路径

既然已经大概了解了.gradle目录的结构,而且/ 根目录磁盘已经不够用了,我们就需要将.gradle目录迁移到其他的地方去,修改Gradle缓存文件夹路径,以后缓存不要缓存到 / 根目录即可。

3.1 设置GRADLE_USER_HOME环境变量

新建一个环境变量设置,GRADLE_USER_HOME,然后写上值为你需要迁移的地方去。

在/etc/profile增加如下:

export GRADLE_USER_HOME=你想要迁移的地址

示例如下:
输入vi命令,编辑/etc/profile文件

[root@localhost workers]# vi /etc/profile
在这里插入图片描述

我们看到原来其他的SDK、gradle等目录也是在/根目录下,后面都移动到了/data目录下,因此我们将GRADLE_USER_HOME从原来的 ~/root/.gradle 也移动到 /data目录下,如下所示

添加 export GRADLE_USER_HOME=/data/opt/.gradle

在这里插入图片描述
[root@localhost .gradle]# vi /etc/profile
[root@localhost .gradle]# source /etc/profile

编辑完之后,使用 source /etc/profile 命令使修改生效。

在这里插入图片描述

修改完后,将原来的老目录删除即可。


在这里插入图片描述

这样 / 根目录 的可用磁盘空间就充裕了一些,这就是修改Gradle缓存文件夹路径的方法。


在这里插入图片描述

作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
转载请保留原文地址:https://blog.csdn.net/qq446282412/article/details/83821204
如果本文对您有所帮助,欢迎您扫码下图所示的支付宝和微信支付二维码对本文进行打赏。

在这里插入图片描述
上一篇下一篇

猜你喜欢

热点阅读