gradle 入门


gradle 安装

项目代码

下载gradle

下载jdk

  • jdk8

下载groovy

案例工具 idea

gradle vs maven

  • 在Maven世界中,一个依赖项有6种scope,分别是complie(默认)、provided、runtime、test、system、import。

    而grade将其简化为了4种,compile(编译时)、runtime(运行时)、testCompile(测试编译时)、testRuntime(测试运行时)
  • Gradle支持动态的版本依赖。在版本号后面使用+号的方式可以实现动态的版本管理

gradle-sample项目构建

  • avatar
  • avatar
  • avatar
  • avatar

gradle常用要点

对标maven

  • pom 替换为 build.gradle和settings.gradle
  • 复用大佬们的代码 pom和build.gradle,冲击力还是蛮强悍的
    <properties>
        <kaptcha.version>2.3</kaptcha.version>
    </properties>
    
    <dependencies>
        <dependency>
            <groupId>com.google.code.kaptcha</groupId>
            <artifactId>kaptcha</artifactId>
            <version>${kaptcha.version}</version>
            <classifier>jdk15</classifier>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
    </dependencies>
    
    dependencies {
        compile('org.springframework:spring-core:2.5.6')
        compile('org.springframework:spring-beans:2.5.6')
        compile('org.springframework:spring-context:2.5.6')
        compile('com.google.code.kaptcha:kaptcha:2.3:jdk15')
        testCompile('junit:junit:4.7')
    }
    

settings.gradle 和 build.gradle

  • build.gradle - 文件包含项目构建所使用的脚本
  • settings.gradle - 文件将包含必要的一些设置

    例如 任务或项目之间的依懒关系等

构建脚本概要

  • 【gradle-script】
    • avatar
  • project 常用
    • 属性:
    group
    name(artifact)
    version 项目版本(全局的)
    sourceCompatibility = 1.8   // source使用的jdk版本 
    targetCompatibility = 1.8   // 编译时使用的jdk版本或者更新的java虚拟机兼容
    compileJava.options.encoding = 'UTF-8'        
    compileTestJava.options.encoding = 'UTF-8'
    
    • 方法
    apply 应用插件
    dependencies 添加依赖
    repositories 添加仓库
    task 定义任务
    buildscript
    allprojects
    subprojects
    configurations
    

依赖管理

  • 【gradle-sample】
  • avatar
  • api/apiElements 与 implementation 的区别
    • gradle 从 3.4 开始,compile 已经被废弃了,

      取而代之的是 api | implementation,俩个我们都可以用
    • api - 同模块本地依赖对外开放
    • implementation - 同模块本地依赖时依赖隔离

多项目构建

  • 【gradle-module】

发布

  • 【gradle-deploy】
  • Gradle默认提供maven-publish插件
  • avatar

版本冲突解决

  • 排除
  • 强制指定一个版本
  • 通过 help -> dependencies 任务可以查询详细的依赖

常用配置更改

  • 敏感信息外部配置
    • gradle.properties 机制
  • 和maven一样更换本地仓库的位置
    • 通过系统环境变量配置
      • GRADLE_USER_HOME
      • D:\gradle\gradleRepository
    • 通过idea中指定
    • 本地缓存路径为
      • D:\gradle\gradleRepository\caches\modules-2\files-2.1
  • 和maven一样指定远程私服
        repositories {
            mavenLocal()
            maven { url "https://maven.aliyun.com/repository/public" }
            maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
            jcenter()
        }
    
  • 和maven配置一样profile
  • 和maven一样 父级依赖机制

常用三方插件

  • 插件的类型 脚本插件和二进制插件
  • 自定义脚本插件 【gradle-script】
    • avatar
  • 二进制插件
    plugins {
       id 'java'
    }
    

自动化测试

自定义任务

解决本地maven和gradle同时存在

gradle和maven项目互转

参考


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM