.gradle目录组织

1.1 顶级目录

目录功能
cachesgradle缓存目录
daemondaemon日志目录
nativegradle平台相关目录
wrappergradle-wrapper下载目录

1.2 caches目录

目录功能
2.14.1gradle程序的脚本(gradle程序版本)
3.2.1gradle程序的脚本(gradle程序版本)
jars-1?
jars-2?
modules-2下载缓存目录

1.2.1 caches/modules-2目录

目录功能
files-2.1gradle下载的jar目录
metadata-2.16gradle-2.14.1的描述文件?
metadata-2.23gradle-3.2.1的描述文件?

files-2.1的目录组织

${org}/${package}/${version}/${shanum1}/${package-version}.pom
${org}/${package}/${version}/${shanum2}/${package-version}.jar
部分目录还有源码,忘记了。

例如:

https://jcenter.bintray.com/com/android/tools/lint/lint-api/25.1.3/lint-api-25.1.3.jar
对应的目录为
.gradle/caches/modules-2/files-2.1/com.android.tools.lint/lint-api/25.1.3/${shasum1}/lint-api-25.1.3.jar

~ find .gradle/caches/modules-2/files-2.1/com.android.tools.lint/lint-api/25.1.3/ -type f

.gradle/caches/modules-2/files-2.1/com.android.tools.lint/lint-api/25.1.3/14c6a94811fb8114a61b8f3ab29214f9466b5c59/lint-api-25.1.3.jar
.gradle/caches/modules-2/files-2.1/com.android.tools.lint/lint-api/25.1.3/c4844e26d84dd1f450f90d89d7e2d2d09f52760/lint-api-25.1.3.pom


~ shasum .gradle/caches/modules-2/files-2.1/com.android.tools.lint/lint-api/25.1.3/14c6a94811fb8114a61b8f3ab29214f9466b5c59/lint-api-25.1.3.jar

14c6a94811fb8114a61b8f3ab29214f9466b5c59  .gradle/caches/modules-2/files-2.1/com.android.tools.lint/lint-api/25.1.3/14c6a94811fb8114a61b8f3ab29214f9466b5c59/lint-api-25.1.3.jar
即目录名。

1.3 daemon目录(无需离线)

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

目录功能
2.14.1gradle-2.14.1运行的日志
3.2.1gradle-3.2.1运行的日志

1.4 native目录(无需离线)

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

目录功能
19gradle-2.14.1对应的lib目录,按平台存放,如osx-amd64
21gradle-3.2.1对应的lib目录,按平台存放,如osx-amd64
jansi?

1.5 wrapper目录

用于存放gradle-wrapper下载gradle的zip包和解压后的文件夹。
wrapper的目录规则是
wrapper/dists/gradle-2.14.1-all/base36/gradle-2.14.1-all.zip
wrapper/dists/gradle-2.14.1-all/base36/gradle-2.14.1-all.zip.lck
wrapper/dists/gradle-2.14.1-all/base36/gradle-2.14.1-all.zip.ok

其中base36的规则为:

java代码如下:

import java.math.BigInteger;
import java.security.MessageDigest;

public class Hash {

    public static void main(String[] args) {
        try {
            MessageDigest messageDigest = MessageDigest.getInstance("MD5");
            byte[] bytes = args[0].getBytes();
            messageDigest.update(bytes);
            String str = new BigInteger(1, messageDigest.digest()).toString(36);
            System.out.println(str);
        } catch (Exception e) {
            throw new RuntimeException("Could not hash input string.", e);
        }
    }
}

c++ java代码见http://github.com/xiaoyur347/gradlew/helper

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值