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