Gradle連載4-依賴包打包方式

一、apply方法的使用

apply plugin:'java'
// 上面是一個短名,下面也有一個完整的名字
apply plugin:org.gradle.api.plugins.JavaPlugin
// 由於org.gradle.api.plugins是默認導入的,所以可以簡寫爲
apply plugin:JavaPlugin

apply from:'version.gradle'
task ex52PrintlnTask {
    println "App版本是:${versionName}, 版本號是:${versionCode}"
}
apply {
    plugin 'java'
    // 該閉包被用來配置一個ObjectConfigurationAction對象,所以你可以在閉包中使用ObjectConfigurationAction
    // 對象的方法、屬性等進行配置,
}
// Action的方式:
apply(new Action<ObjectConfigurationAction>() {
    @Override
    void execute(ObjectConfigurationAction objectConfigurationAction) {
        objectConfigurationAction.plugin('java')
    }
})
  • 最後一種方式就是自定義一個action,然後在其execute方法中書寫業務邏輯

二、使用第三發插件進行配置

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'
        // 這裏面就是自定義的第三方插件,在構建項目之前,爲項目進行前期相關準備和初始化配置的地方
    }
}
apply plugin: 'com.android.application'

三、plugins DSL方式

plugins {
    id 'java'
}
// plugins DSL是一種新的插件應用方式
  • 使用這種方式和上面還是有一定差異,如果插件已經託管在了https://plugins.gradle.org/上,就可以不用在buildscript中配置classpath的依賴了,直接使用即可
plugins {
 id "org.sonarqube" version "1.2"
}

四、自定義插件

apply plugin: zidingyiPlugin
class zidingyiPlugin implements Plugin<Project> {
    void apply(Project project) {
        project.task('zidingyiPlugin') {
            println "自定義插件"
        }
    }
}
4.1
4.1
  • 下面新建一個Groovy工程,自定義個jar包
package com.example.myapplication;

import org.gradle.rujews.plugin;
import org.


public class CustomPlugin implements Plugin<Project>{
    @Override
    void apply(Project target) {
        target.task("CustomTask") {
            println "自定義插件"
        }
    }
}
  • 插件開發所需要的依賴
apply plugin: 'groovy'

dependencies {
    compile gradleApi()
    compile localGroovy()
}
  • 在src/main/resources/META-INF/gradle-plugins目錄下新建一個plugin id的properties文件內容爲implementation-class=com.example.myapplication.CustomPlugin
  • 然後再build.gradle中使用
buildscript {
    dependencies {
        classpath file('lib/CustomPlugin')
    }
}

五、Java插件約定的項目結構

  • java工程的默認存放目錄: 4.2
apply plugin:'java'

sourceSets {
    custom {

    }
}
// 添加一個custom的源代碼集合,然後我們在src下新custom/java,custom/resources目錄就可可以
// 存放源代碼和資源文件,他們默認的目錄結構就是src/sourceSet/java  src/sourceSet/resources

sourceSets {
    main {
        java {
            srcDir 'src/java'
        }
        resources {
            srcDir 'src/resources'
        }
    }
}

六、配置第三方依賴

repositories {
    mavenCentral() // 配置了一個Maven中心庫
    maven {
        url 'http://www.mavenurl.com'
    }
}

dependencies {
    compile group: 'com.squareup.okhttp3'name: 'okhttp'version: '3.0.1'
    // 或者簡寫爲complile 'com.squareup.okhttp3:okhttp:3.0.1'
}
  • 配置中心倉的方式,上面是配置了下載地點,下面是配置了要依賴什麼組件
// 下面是依賴一個project
dependencies {
    compile project(':exampleCustom')
}
  • 依賴一個project,那麼我們的工程中可以隨便用這個依賴的工程中的類,就像都在一個工程裏面一樣。
  • 下面各關鍵字的解釋 4.3
  • 除此之外,gradle還可以給不同的源碼指定不同的依賴
dependencies {
    mainCompile 'com.squareup.okhttp3:okhttp:3.0.1'
    vipCompile 'com.squareup.okhttp:okhttp:2.5.0'
}
4.4
4.4

文件依賴

  • 我們把自有的一個jar放到本地,進行鎖定依賴
dependencies {
    complie file('libs/jdis.jar''libs/nngi.jar')
}

dependencies {
 // 使用文件樹的形式,可以把整個目錄已經正則表達式引入
    compile fileTree(dir:'libs'includes:'*.jar')
}

七、構建一個Java項目

  • build任務,比如clean,可以清除以前編譯生成的文件,如果編譯有問題,可以先執行clean,清理
  • assemble任務,該任務不會執行單元測試,只會編譯和打包,這個任務在Android裏也有,執行它可以打apk包。
  • check任務,只會執行單元測試,不會打jar包
  • javadoc任務,生成我們需要的doc api文檔

八、源碼

  • gitee路徑:https://gitee.com/dongqianrui/AndroidStudioProject/tree/master/Test1
  • CSDN:https://blog.csdn.net/weixin_44630050
  • 博客園:https://www.cnblogs.com/ruigege0000/
  • 歡迎關注微信公衆號:傅里葉變換,個人賬號,僅用於技術交流 微信公衆號二維碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章