摘要:記得在中支持多個子項目的構建方法同樣的在中也會支持多項目的構建方法還記得在中如何配置多項目工程嗎這里回憶一下首先我們需要一個父元素文件比如這樣而在中我們并不需要指定父元素的標簽我們只需要編寫好對應的文件夾名稱,并且將文件夾名稱和對
記得在maven中支持多個子項目的構建方法,同樣的在gradle 中也會支持多項目的構建方法
還記得在maven中如何配置多項目工程嗎, 這里回憶一下
首先我們需要一個父元素pom文件比如這樣
4.0.0 com.kyssion maven-demo 1.0-SNAPSHOT pom
而在gradle中,我們并不需要指定父元素的標簽,我們只需要編寫好對應的文件夾名稱,并且將文件夾名稱和對應的目錄結構對應清,gradle 就能自動的識別這個子項目
比如我創建這樣一個子項目名稱是greeting-library
子項目中的配置未見build.gradle
plugins { id "groovy" } group "com.kyssion" version "1.0-SNAPSHOT" repositories { mavenCentral() } dependencies { compile "org.codehaus.groovy:groovy-all:2.5.6" testCompile group: "junit", name: "junit", version: "4.12" }
父項目中的setting.gradle中添加這樣一條配置
include "greeting-library"
這樣就能使用greeting-library目錄下的gradle子項目了
一個簡單的項目這使用一個簡單的項目介紹一下這個如何使用gradle 實現整合打包
項目結構和模塊劃分├── build.gradle ├── greeter │?? ├── build │?? │?? ├── classes │?? │?? │?? └── java │?? │?? │?? └── main │?? │?? │?? └── greeter │?? │?? │?? └── Greeter.class │?? │?? ├── distributions │?? │?? │?? ├── greeter-1.0-SNAPSHOT.tar │?? │?? │?? └── greeter-1.0-SNAPSHOT.zip │?? │?? ├── generated │?? │?? │?? └── sources │?? │?? │?? └── annotationProcessor │?? │?? │?? └── java │?? │?? │?? └── main │?? │?? ├── libs │?? │?? │?? └── greeter-1.0-SNAPSHOT.jar │?? │?? ├── scripts │?? │?? │?? ├── greeter │?? │?? │?? └── greeter.bat │?? │?? └── tmp │?? │?? ├── compileJava │?? │?? └── jar │?? │?? └── MANIFEST.MF │?? ├── build.gradle │?? └── src │?? ├── main │?? │?? ├── java │?? │?? │?? └── greeter │?? │?? │?? └── Greeter.java │?? │?? └── resources │?? └── test │?? ├── java │?? └── resources ├── greeting-library │?? ├── build │?? │?? ├── classes │?? │?? │?? └── groovy │?? │?? │?? ├── main │?? │?? │?? │?? └── greeter │?? │?? │?? │?? └── GreetingFormatter.class │?? │?? │?? └── test │?? │?? │?? └── greeter │?? │?? │?? └── GreetingFormatterSpec.class │?? │?? ├── generated │?? │?? │?? └── sources │?? │?? │?? └── annotationProcessor │?? │?? │?? └── groovy │?? │?? │?? ├── main │?? │?? │?? └── test │?? │?? ├── libs │?? │?? │?? └── greeting-library-1.0-SNAPSHOT.jar │?? │?? ├── reports │?? │?? │?? └── tests │?? │?? │?? └── test │?? │?? │?? ├── classes │?? │?? │?? │?? └── greeter.GreetingFormatterSpec.html │?? │?? │?? ├── css │?? │?? │?? │?? ├── base-style.css │?? │?? │?? │?? └── style.css │?? │?? │?? ├── index.html │?? │?? │?? ├── js │?? │?? │?? │?? └── report.js │?? │?? │?? └── packages │?? │?? │?? └── greeter.html │?? │?? ├── test-results │?? │?? │?? └── test │?? │?? │?? ├── binary │?? │?? │?? │?? ├── output.bin │?? │?? │?? │?? ├── output.bin.idx │?? │?? │?? │?? └── results.bin │?? │?? │?? └── TEST-greeter.GreetingFormatterSpec.xml │?? │?? └── tmp │?? │?? ├── compileGroovy │?? │?? │?? └── groovy-java-stubs │?? │?? ├── compileTestGroovy │?? │?? │?? └── groovy-java-stubs │?? │?? ├── jar │?? │?? │?? └── MANIFEST.MF │?? │?? └── test │?? │?? └── jar_extract_15307722744227685163_tmp │?? ├── build.gradle │?? └── src │?? ├── main │?? │?? ├── groovy │?? │?? │?? └── greeter │?? │?? │?? └── GreetingFormatter.groovy │?? │?? ├── java │?? │?? └── resources │?? └── test │?? ├── groovy │?? │?? └── greeter │?? │?? └── GreetingFormatterSpec.groovy │?? ├── java │?? └── resources └── settings.gradle
這個項目中劃分為根項目gradle-demo,包項目greeting-library,core可運行項目greeter。
注意: 通過上面的例子我們可以得出,在gradle 中不同的子項目的命名規則是使用文件夾的
注意:在java 項目中,gradle 要求 必須指定項目的main函數具體方法見下方
這里針對gradle的多語言的編程的目錄結構做一下補充,gradle中源代碼同意放置在這樣的位置中src->main/test->編程語言名稱文件夾 下
plugins { id "java" id "application" } group "com.kyssion" version "1.0-SNAPSHOT" sourceCompatibility = 1.8 mainClassName = "greeter.Greeter" //這一句指定了main函數 repositories { mavenCentral() } dependencies { compile project(":greeting-library") testCompile group: "junit", name: "junit", version: "4.12" }總結
在構建gradle 多模塊項目的時候,一定要注意多模塊的之間的引用,模塊中main函數的編寫,父模塊的include
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/73430.html
摘要:最近想深入的學習一下工程化方面相關的東西,在和直接糾結不已,因為的擴展性太差勁了,學習成本頗高,所以最后投入了的懷抱中,以后有時間再重新學習一下吧最近的學習筆記是基于系列,其中各種教程和例子大都是來源于官方文檔或者網絡上的博客。 最近想深入的學習一下工程化方面相關的東西,在maven和gradle直接糾結不已,因為maven的擴展性太差勁了,學習成本頗高,所以最后投入了gradle的懷...
摘要:是一個基于和概念的項目自動化構建工具。當前其支持的語言限于和主要面向應用。本次分享將具體講述如何利用來創建一個簡單的項目。首先我們新建一個文件夾作為展示的項目。中的代碼如下這是用來定義項目。接著創建文件夾,這是項目開發中習慣性的構建方法。 ??Gradle是一個基于Apache Ant和Apache Maven概念的項目自動化構建工具。它使用一種基于Groovy的特定領域語言(DSL)...
摘要:項目結構下面是我們創建項目生成的目錄展開目錄如下配置文件,由系統自動生成,一般情況下不需要進行修改開發工具的信息默認啟動模塊主模塊,開發者用于編寫源碼文件以及開發資源文件的目錄用于存放模塊的依賴文件用于存放源碼用于存放應用所用到的資源文件 1.項目結構 下面是我們創建項目生成的目錄 1.M...
摘要:項目結構下面是我們創建項目生成的目錄展開目錄如下配置文件,由系統自動生成,一般情況下不需要進行修改開發工具的信息默認啟動模塊主模塊,開發者用于編寫源碼文件以及開發資源文件的目錄用于存放模塊的依賴文件用于存放源碼用于存放應用所用到的資源文件 1.項目結構 下面是我們創建項目生成的目錄 1.M...
閱讀 1675·2021-11-15 11:37
閱讀 3408·2021-09-28 09:44
閱讀 1649·2021-09-07 10:15
閱讀 2784·2021-09-03 10:39
閱讀 2687·2019-08-29 13:20
閱讀 1291·2019-08-29 12:51
閱讀 2204·2019-08-26 13:44
閱讀 2125·2019-08-23 18:02