摘要:最近想深入的學習一下工程化方面相關的東西,在和直接糾結不已,因為的擴展性太差勁了,學習成本頗高,所以最后投入了的懷抱中,以后有時間再重新學習一下吧最近的學習筆記是基于系列,其中各種教程和例子大都是來源于官方文檔或者網絡上的博客。
最近想深入的學習一下工程化方面相關的東西,在maven和gradle直接糾結不已,因為maven的擴展性太差勁了,學習成本頗高,所以最后投入了gradle的懷抱中,以后有時間再重新學習一下maven吧
最近的學習筆記是基于gradle 5 系列,其中各種教程和例子大都是來源于官方文檔或者網絡上的博客。內容涵蓋我在學習gradle過程中的各種心得和gradle的一些使用方法
注意: 這里使用的配偶語言世kotlin 而不是使用groovy
gradle創建項目一個命令
gradle init
用戶可以通過這個命令創建一個基本的gradle項目包括gradle項目的目錄結構
├── build.gradle (1) ├── gradle │ └── wrapper │ ├── gradle-wrapper.jar (2) │ └── gradle-wrapper.properties (3) ├── gradlew (4) ├── gradlew.bat (5) └── settings.gradle (6)
(1) gradle 的構建腳本用來構建當前的gradle項目,最核心的配置文件
(2) (3) 一個gradle副本和配置文件,用來當如果系統中的gradle版本和項目使用的gradle版本不同,將會在這里下載一個項目中的版本
(4) (5) 配套使用的命令行工具 沒有.bat后綴的是unix系統命令有的是windowns系統,可以用來執行gradle中定義的各種task 任務
(6) 用于配置Gradle構建的Gradle設置腳本
gradle的taskgradle 方便用戶進行配置的特性是源于gradle提供了方便使用task參數
這里編寫一個很基本的copy文件的權限,在路徑中添加一個src文件夾和dest文件夾,在src文件中添加一個文件markfile.txt 并且里面有一個內容hello world!
然后在build.gradle 中編寫一個任務
task copy(type:Copy,group:"custom",description:"test one"){ from "src" into "dest" }
其中的type 字段將會調用系統中的Copy函數,而group和description 只是描述這個過程的描述符,只會影響系統的log輸出,并不會影響實際的效果
./gradlew Copy
運行對應的命令就能運行對應的copy方法
使用一個gradle內部的插件系統在項目中使用插件標簽plugins添加指定的base插件到系統中
plugins { id "base" }
然后在指定的位置我們添加一個插件(和任務的使用方法相同,我懷疑其實gradle的插件就是打包好的任務)
task zip(type: Zip, group: "Archive", description: "Archives sources in a zip file") { from "src" setArchiveName "basic-demo-1.0.zip" }
然后運行對應的命令,就可以在對應的目錄 build/distributions 中找到 src目錄下的壓縮文件了
./gradlew Zip查看當前擁有的task
gradle 有一個內置的命令
./gradlew task
這條命令將會將所有的當前的gradle項目中擁有的構建命令全部列出來
> Task :tasks ------------------------------------------------------------ Tasks runnable from root project ------------------------------------------------------------ Archive tasks ------------- zip - Archives sources in a zip file Build tasks ----------- assemble - Assembles the outputs of this project. build - Assembles and tests this project. clean - Deletes the build directory. Build Setup tasks ----------------- init - Initializes a new Gradle build. wrapper - Generates Gradle wrapper files. Custom tasks ------------ copy - Copies sources to the dest directory Help tasks ---------- buildEnvironment - Displays all buildscript dependencies declared in root project "gradle". components - Displays the components produced by root project "gradle". [incubating] dependencies - Displays all dependencies declared in root project "gradle". dependencyInsight - Displays the insight into a specific dependency in root project "gradle". dependentComponents - Displays the dependent components of components in root project "gradle". [incubating] help - Displays a help message. model - Displays the configuration model of root project "gradle". [incubating] projects - Displays the sub-projects of root project "gradle". properties - Displays the properties of root project "gradle". tasks - Displays the tasks runnable from root project "gradle". Verification tasks ------------------ check - Runs all checks. Rules ----- Pattern: cleangradle 提供的在線查看構建詳情的方法 --scan命令: Cleans the output files of a task. Pattern: build : Assembles the artifacts of a configuration. Pattern: upload : Assembles and uploads the artifacts belonging to a configuration. To see all tasks and more detail, run gradlew tasks --all To see more detail about a task, run gradlew help --task BUILD SUCCESSFUL in 1s 1 actionable task: 1 executed <-------------> 0% WAITING > IDLE
我們在使用構建命令的時候可以在命令的后面添加一個 --scan命令,通過這個命令可以鏈接到gradle官方的view顯示倉庫或者連接到自定義的鏈接倉庫中,然后輕松的查看項目使用的構建任務,構建時間等等信息
./gradlew Zip --scan
然后可以登入命令行打出的一個網址,在其中的form表單中填寫郵箱地址,然后就會將構建的信息發送到郵箱中了
注意:這個功能是收費的gradle 展示當前系統的可用參數信息 properties命令
$ ./gradlew properties > Task :properties ------------------------------------------------------------ Root project ------------------------------------------------------------ buildDir: /Users/.../basic-demo/build buildFile: /Users/.../basic-demo/build.gradle description: null group: name: basic-demo projectDir: /Users/.../basic-demo version: unspecified BUILD SUCCESSFUL
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/73432.html
摘要:可以在沒有安裝的情況下使用,這時候就需要了。創建文件使用來創建一組文件。官方建議我們在所有項目中都創建文件,方便沒有安裝的用戶使用。代碼如下然后使用來查看變更之后的版本。不過只需要下載一次,之后再次使用相同的版本就不會下載了。 Gradle可以在沒有安裝Gradle的情況下使用,這時候就需要Gradle Wrapper了。Gradle Wrapper其實就是一個腳本文件,它會在沒有安裝...
摘要:記得在中支持多個子項目的構建方法同樣的在中也會支持多項目的構建方法還記得在中如何配置多項目工程嗎這里回憶一下首先我們需要一個父元素文件比如這樣而在中我們并不需要指定父元素的標簽我們只需要編寫好對應的文件夾名稱,并且將文件夾名稱和對 記得在maven中支持多個子項目的構建方法,同樣的在gradle 中也會支持多項目的構建方法 還記得在maven中如何配置多項目工程嗎, 這里回憶一下 首先...
摘要:是一個基于和概念的項目自動化構建工具。當前其支持的語言限于和主要面向應用。本次分享將具體講述如何利用來創建一個簡單的項目。首先我們新建一個文件夾作為展示的項目。中的代碼如下這是用來定義項目。接著創建文件夾,這是項目開發中習慣性的構建方法。 ??Gradle是一個基于Apache Ant和Apache Maven概念的項目自動化構建工具。它使用一種基于Groovy的特定領域語言(DSL)...
摘要:項目結構下面是我們創建項目生成的目錄展開目錄如下配置文件,由系統自動生成,一般情況下不需要進行修改開發工具的信息默認啟動模塊主模塊,開發者用于編寫源碼文件以及開發資源文件的目錄用于存放模塊的依賴文件用于存放源碼用于存放應用所用到的資源文件 1.項目結構 下面是我們創建項目生成的目錄 1.M...
閱讀 1740·2021-10-18 13:30
閱讀 2621·2021-10-09 10:02
閱讀 2969·2021-09-28 09:35
閱讀 2097·2019-08-26 13:39
閱讀 3529·2019-08-26 13:36
閱讀 1956·2019-08-26 11:46
閱讀 1139·2019-08-23 14:56
閱讀 1700·2019-08-23 10:38