grandle相关配置文件介绍

我们通过上面的图片可以看到,项目中跟 Gradle 相关的主要有 7 个部分:

        1、父项目下的 build.gradle: 全局配置,配置 Gradle 版本和 Maven 依赖;

        2、父项目下的setting.gradle 文件: 全局配置,添加编译的所有模块;

        3、父项目下的gradle 文件夹: 配置 gradel-wrapper;

        4、子项目下的 build.gralde文件: app 打包和签名配置,及模块的依赖;

        5、gradlew 和 gradlew.bat 文件: Gradle 启动脚本文件

        6、gradle.projects 文件: 项目范围的梯度设置,编译内存,Gradle 并发性等设置。        

        7、.gradle 文件夹: 编译时的缓存文件夹这几个部分各自负责的功能都不尽相同。下面我们来看下它们具体的功能。

1.1 父项目下的build.gradle

此配置文件位于项目根目录下,它是顶级构建文件, 用于定义项目所有子项目/模块的配置文件, 可以定义全局公用的构建配置,以Spring Boot项目配置示例:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
//顶级构建文件,您可以在其中添加所有 子项目/modules 共有的配置选项
//这个闭包里是配置 Gradle 脚本执行所需要的的依赖,分别是对应 Maven 仓库和构建工具 Gradle 的版本。
buildscript {
    ext {
        springBootVersion = '2.1.2.RELEASE'
    }
    repositories {
        maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}
 
// 所有模块/项目的通用配置
allprojects {
    group 'com.diboot'
    version '1.0-SNAPSHOT'
    apply plugin: 'idea'
}
​
// 子模块/项目的统一配置
subprojects {
    apply plugin: 'java'
    // 指定JDK版本
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
    // 指定编码格式
    [compileJava,compileTestJava,javadoc]*.options*.encoding = 'UTF-8'
    repositories {
        maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
    }
    ext {//依赖版本
        springBootVersion = "2.1.2.RELEASE"
        mysqlConnectorVersion = "8.0.13"
        mybatisStarterVersion = "1.3.2"
        fastjsonVersion = "1.2.54"
    }
    dependencies {
        compile("javax.servlet:javax.servlet-api:4.0.1")
        compile("org.springframework.boot:spring-boot-starter-web:$springBootVersion")
        // Mybatis
        compile("org.mybatis.spring.boot:mybatis-spring-boot-starter:$mybatisStarterVersion")
        // Log4j2
        compile("org.springframework.boot:spring-boot-starter-log4j2:$springBootVersion")
        // JDBC Driver
        compile("mysql:mysql-connector-java:$mysqlConnectorVersion")
        // JSON
        compile("com.alibaba:fastjson:$fastjsonVersion")
        // Apache Commons
        compile("org.apache.commons:commons-lang3:3.8.1")
        
        // 单元测试
        testCompile("org.springframework.boot:spring-boot-starter-test:$springBootVersion")
        testCompile("junit:junit:4.12")
    }
    configurations {
        //移除spring boot 默认logger依赖
        all*.exclude module: 'spring-boot-starter-logging'
    }
}
​
//Gradle 是基于任务的,这里的clean它是一个 Gradle 任务,它继承自Delete,我们点击clean Project或是执行gradle clean命令的时候就是在执行这个任务,它的任务内容是删除build文件夹下的内容。
task clean(type: Delete) {
    delete rootProject.buildDir
}

1.2 gradle-project-service下的build.gradle文件

//配置该子模块持有的依赖
dependencies {
    //依赖dao项目
    compile project(":gradle-project-dao")
    //配置该项目持有的依赖
}
1.3 gradle文件夹

radle 文件夹主要是配置 gradle-wrapper 的,我们看到它的目录下有个wrapper目录,下面有gradle-wrapper.jar和gradle-wrapper.properties两个文件。

下面我们看下gradle-wrapper.properties文件的内容,我们会发现它是配置 Gradle 版本的。看着毫不起眼,但是它却非常重要,关于它的详细介绍我们下一节会做详细的讲解。

1.4 setting.gradle文件

这个文件其实非常简单,就是配置项目的模块的,有几个模块就在 setting.gradle 文件里面添加它们的名字就行了。

rootProject.name = 'gradle-project-parent'
include 'gradle-project-dao'
include 'gradle-project-service'

1.5 grandle.projects 文件

这个文档一般我们在日常开发中不需要去动它,这个文档主要是项目范围的梯度设置,通过 AndroidStudio 配置的渐变设置将覆盖此文件中指定的任何设置。

主要设置Gradle后台进程JVM内存大小、日记级别等等;

org.gradle.caching=(true,false)

​ 当设置为true时,Gradle将重用来自任何先前构建的任务输出,如果可能,结果是更快的构建。 默认情况下,未启用生成缓存。

org.gradle.caching.debug=(true,false)

设置为true时,每个任务的单个输入属性哈希和生成缓存键都会记录在控制台上。默认值为false。

org.gradle.configureondemand=(true,false)

启用按需配置,Gradle将尝试仅配置必要的项目。默认值为false。

org.gradle.console=(auto,plain,rich,verbose)

自定义控制台输出颜色或详细程度。默认值取决于Gradle的调用方式。

org.gradle.daemon=(true,false)

当设置为true时,Gradle守护进程用于运行构建。默认值为true,将使用守护进程运行构建。

org.gradle.daemon.idletimeout=(# of idle millis)

Gradle守护进程将在指定的空闲毫秒数后自行终止。默认值为10800000(3小时)。

org.gradle.debug=(true,false)

当设置为true时,Gradle将在启用远程调试的情况下运行构建,监听端口5005。请注意,这相当于将-agentlib:jdwp=transport=dt_socket、server=y、suspend=y、address=5005添加到JVM命令行,并将挂起虚拟机,直到附加了调试器。默认值为false。

org.gradle.java.home=(path to JDK home)

指定Gradle构建过程的Java目录。该值可以设置为jdk或jre位置,但是,根据构建的操作,使用jdk更安全。这不会影响用于启动Gradle客户端VM的Java版本(请参阅环境变量)。如果未指定设置,则从您的环境(JAVA_HOME或JAVA路径)派生一个合理的默认值。

org.gradle.jvmargs=(JVM arguments)

指定用于Gradle守护进程的JVM参数。该设置对于为构建性能配置JVM内存设置特别有用。这不会影响Gradle客户端VM的JVM设置。默认值为-Xmx512m“-XX:MaxMetaspaceSize=256m”。

org.gradle.logging.level=(quiet,warn,lifecycle,info,debug)

当设置为静默、警告、生命周期、信息或调试时,Gradle将使用此日志级别。这些值不区分大小写。请参见选择日志级别。生命周期级别是默认值。

org.gradle.parallel=(true,false)

配置后,Gradle将交给org。格拉德尔。工人。最大限度地使用JVM并行执行项目。要了解有关并行任务执行的更多信息,请参阅Gradle构建性能部分。默认值为false。

org.gradle.priority=(low,normal)

指定Gradle守护进程及其启动的所有进程的调度优先级。另请参见性能命令行选项。违约是正常的。

org.gradle.vfs.verbose=(true,false)配置监视文件系统时的详细日志记录。默认值为false。

org.gradle.vfs.watch=(true,false)切换查看文件系统。启用此选项后,Gradle将重新使用它在构建之间收集的有关文件系统的信息。在Gradle支持此功能的操作系统上默认启用。

org.gradle.warning.mode=(all,fail,summary,none) 当设置为all、summary或none时,Gradle将使用不同的警告类型显示。有关详细信息,请参见命令行日志记录选项。默认为摘要。

org.gradle.workers.max=(max # of worker processes)

配置后,Gradle将最多使用给定数量的工作人员。另请参见性能命令行选项。默认值是CPU处理器的数量。

1.6 gradlew 和 gradlew.bat文件

这两个文件其实就是 Gradle 启动的脚本文件,我们可以使用gradlew命令来打包相当于gradle命令。关于gradle的命令我们后面有一节专门介绍。这节我们看下这两个文件的区别,以及怎么使用gradlew命令。 下面我们看看这两个文件的前面几行:

gradlew 文件

#!/usr/bin/env sh
 
##############################################################################
##
##  Gradle start up script for UN*X
##
##############################################################################

gradlew.bat 文件

@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem  Gradle startup script for Windows
@rem
@rem ##########################################################################
 

1.7 .gradle文件夹

这个文件其实我们不用太在意它,这个文件夹是项目构建的一个缓存的目录。只要我们打开一个 Android 项目,它就会生成这个文件夹。是一个临时的文件夹。

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值