国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Gradle 筆記

coordinate35 / 1226人閱讀

via: https://tianyu94.com/2019/06/...

Make the impossible possible, make the possible easy, and make the easy elegant

Gradle is Groovy

Minimize Coupling, Maximize Cohesion

Task 任務
task helloWorld {
  doLast {
    println "Hello world~"
  }
}
$ gradle -q helloWorld
Hello world~
-q quiet 只輸出 task 的相關信息

每個新建的 task 默認都是 DefaultTask 類,標準的 Task 實現。

結合函數方法
task startTask {
  doLast {
    hello()
  }
}

def hello() {
  println "Hello~"
}
$ gradle startTask
Hello~
動態 task
3.times {
  task "repeatTask$it" {
    println "I am repeat task"
  }
}

// 指定此 task 需依賴 repeatTask0
task groupTherapy(dependsOn: repeatTask0)
$ gradle groupTherapy
:repeatTask0
I am repeat task
:repeatTask1
I am repeat task
:repeatTask2
I am repeat task
$ gradle groupTherapy -x repeatTask1
:repeatTask0
I am repeat task
:repeatTask2
I am repeat task
-x 排除指定 task
$ gradle repeatTask0 groupTherapy
:repeatTask0
I am repeat task
:repeatTask1
I am repeat task
:repeatTask2
I am repeat task
執行多個 task,且每個 task 僅執行一次
給現有的 task 添加動作
task printVersion {
  doFirst {
    println "Version 0.1 in doFirst"
  }

  doLast {
    println "Version 0.1 in doLast"
  }
}

printVersion.doFirst { println "First action" }
printVersion.doLast {  println "Last action" }
$ gradle printVersion
First action
Version 0.1 in doFirst
Version 0.1 in doLast
Last action
設置描述和分組
task myTask {
  group = "group1"
  description = "I am myTask of group1"
}
// or
task myTask(group: "group1",
            description: "I am myTask of group1") {
  // ...
}
依賴多個 task
task myTask(dependsOn: [otherTask1, otherTask2]) {
  // ...
}
注意,若執行 myTask,它依賴的 otherTask1 和 otherTask2 (除其本身有依賴關系外)并不會保證執行的先后順序與代碼順序一致。這個特征可使多個 task 并行執行提高效率,或是忽略固定的順序來保證代碼的維護性和避免潛在的破壞
終結器 task (finalizer task)
task task1 {
  doLast { println "task1" }
}

task task2 {
  doLast { println "task2" }
}

task1.finalizedBy task2
$ gradle task1
task1
task2
若終結器 task 執行失敗,則不會影響 Gradle 的 task 的執行進度
部分命令行選項

-? / -h / --help 打印幫助信息

-b / --build-file 指定構建文件 e.g. gradle -b my.gradle

--offline 使用緩存離線構建

-q / --quiet, -w / --warning, -i / --info, -d / --debug 日志等級

s / --stacktrace 打印簡要堆棧跟蹤

S / --full-stacktrace 打印所有堆棧跟蹤

幫助 task

tasks 顯示項目可運行的 task,-a / --all 顯示全部 task

properties 顯示項目中可用屬性

插件 使用 Java 插件
apply plugin: "java"
使用 War 插件
apply plugin: "war"

// 部分自定義屬性設置
webAppDirName = "mywebfiles" // 指定Web應用的源代碼路徑
war {
  // 將 mydir1,mydir2 路徑添加到 war 文件的根目錄下
  from "mydir1"
  from "mydir2"
}
使用 Jetty 插件
// 在 Gradle 4.0 之前可用
apply plugin: "jetty"

// 在 Gradle 4.0 之后 jetty 插件已移除,替換為 Gretty
// 其他引用方法見官網:https://gretty-gradle-plugin.github.io/gretty-doc/Getting-started.html
apply from: "https://raw.github.com/akhikhl/gretty/master/pluginScripts/gretty.plugin"

// Gretty 屬性設置
// 詳情見官網:https://gretty-gradle-plugin.github.io/gretty-doc/Gretty-configuration.html
gretty {
  httpPort = 8081 // 指定服務端口
  contextPath = "/MyWebApp" // 指定 url 根路徑
  // ... many more properties
}
Gretty tasks

appRun / jettyRun 運行程序

屬性
version = 0.1 // 設置項目版本
sourceCompatibility = 1.8 // 設置Java編譯兼容版本為 1.8

jar {
  manifest {
    // 添加屬性到 Jar 文件中
    attributes "Main-Class": "path.to.your.MainClass"
  }
}

sourceSets {
  main {
    java {
      // 自定義源代碼路徑,默認是 /src/main/java/
      srcDirs = ["your_src_dir_path"]
    }
  }
  test {
    java {
      // 自定義測試代碼路徑,默認是 /src/test/java
      srcDirs = ["your_test_dir_path"]
    }
  }
}
拓展屬性
project.ext.myProp = "hello"
// or
ext.myProp = "hello"
// or
myProp = "hello"

或者在 gradle.properties 文件中定義拓展屬性

依賴
repositories {
    mavenCentral() // 使用 Maven Central 2 倉庫
}

// 以下依賴存在多個重復,僅做示例
dependencies {
  // 編譯使用
  compile group: "org.apache.commons", name: "commons-lang3", version: "3.9"
  // 簡寫形式,用冒號隔開
  compile "org.apache.commons:commons-lang3:3.9"

  // 同 compile ,在 Gradle 5.x 后(建議)用此替換 compile
  implementation "org.apache.commons:commons-lang3:3.9"

  // 編譯時需要,在運行時由環境提供
  providedCompile "javax.servlet:servlet-api:2.5"

  // 運行時提供
  runtime "javax.servlet:jstl:1.1.2"
}
包裝器 生成包裝器
$ gradle wrapper
# 在構建腳本 build.gradle 旁會生成 gradle/wrapper/... 的包裝器文件 *.jar 和 *.properties
# 同時生成 gradlew(for linux),gradlew.bat(for windows)
使用包裝器

Windows: gradlew.bat ...

Linux: gradlew ...

定制包裝器
task wrapper(type: Wrapper) {
  // 指定 Gradle 版本
  gradleVersion = "5.1.1"
  // 獲取 Gradle 包的 url
  distributionUrl = "http://mycustomserver.com/gradle/dists"
  // 包裝器被解壓后存放的相對路徑
  distributionPath = "gradle-dists"
}
筆記部分內容來源:Gradle in Action https://www.manning.com/books...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75018.html

相關文章

  • Gradle學習筆記 使用Gradle Wrapper

    摘要:可以在沒有安裝的情況下使用,這時候就需要了。創建文件使用來創建一組文件。官方建議我們在所有項目中都創建文件,方便沒有安裝的用戶使用。代碼如下然后使用來查看變更之后的版本。不過只需要下載一次,之后再次使用相同的版本就不會下載了。 Gradle可以在沒有安裝Gradle的情況下使用,這時候就需要Gradle Wrapper了。Gradle Wrapper其實就是一個腳本文件,它會在沒有安裝...

    Richard_Gao 評論0 收藏0
  • gradle-學習筆記(1)-初步使用

    摘要:最近想深入的學習一下工程化方面相關的東西,在和直接糾結不已,因為的擴展性太差勁了,學習成本頗高,所以最后投入了的懷抱中,以后有時間再重新學習一下吧最近的學習筆記是基于系列,其中各種教程和例子大都是來源于官方文檔或者網絡上的博客。 最近想深入的學習一下工程化方面相關的東西,在maven和gradle直接糾結不已,因為maven的擴展性太差勁了,學習成本頗高,所以最后投入了gradle的懷...

    frank_fun 評論0 收藏0
  • gradle-學習筆記(2)-多項目構建

    摘要:記得在中支持多個子項目的構建方法同樣的在中也會支持多項目的構建方法還記得在中如何配置多項目工程嗎這里回憶一下首先我們需要一個父元素文件比如這樣而在中我們并不需要指定父元素的標簽我們只需要編寫好對應的文件夾名稱,并且將文件夾名稱和對 記得在maven中支持多個子項目的構建方法,同樣的在gradle 中也會支持多項目的構建方法 還記得在maven中如何配置多項目工程嗎, 這里回憶一下 首先...

    happen 評論0 收藏0
  • Gradle學習筆記(1)創建簡單的Java項目

    摘要:是一個基于和概念的項目自動化構建工具。當前其支持的語言限于和主要面向應用。本次分享將具體講述如何利用來創建一個簡單的項目。首先我們新建一個文件夾作為展示的項目。中的代碼如下這是用來定義項目。接著創建文件夾,這是項目開發中習慣性的構建方法。 ??Gradle是一個基于Apache Ant和Apache Maven概念的項目自動化構建工具。它使用一種基于Groovy的特定領域語言(DSL)...

    URLOS 評論0 收藏0
  • 鴻蒙學習筆記之初運項目

    摘要:項目結構下面是我們創建項目生成的目錄展開目錄如下配置文件,由系統自動生成,一般情況下不需要進行修改開發工具的信息默認啟動模塊主模塊,開發者用于編寫源碼文件以及開發資源文件的目錄用于存放模塊的依賴文件用于存放源碼用于存放應用所用到的資源文件 1.項目結構 下面是我們創建項目生成的目錄 1.M...

    不知名網友 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<