摘要:記得在中支持多個(gè)子項(xiàng)目的構(gòu)建方法同樣的在中也會(huì)支持多項(xiàng)目的構(gòu)建方法還記得在中如何配置多項(xiàng)目工程嗎這里回憶一下首先我們需要一個(gè)父元素文件比如這樣而在中我們并不需要指定父元素的標(biāo)簽我們只需要編寫(xiě)好對(duì)應(yīng)的文件夾名稱,并且將文件夾名稱和對(duì)
記得在maven中支持多個(gè)子項(xiàng)目的構(gòu)建方法,同樣的在gradle 中也會(huì)支持多項(xiàng)目的構(gòu)建方法
還記得在maven中如何配置多項(xiàng)目工程嗎, 這里回憶一下
首先我們需要一個(gè)父元素pom文件比如這樣
4.0.0 com.kyssion maven-demo 1.0-SNAPSHOT pom
而在gradle中,我們并不需要指定父元素的標(biāo)簽,我們只需要編寫(xiě)好對(duì)應(yīng)的文件夾名稱,并且將文件夾名稱和對(duì)應(yīng)的目錄結(jié)構(gòu)對(duì)應(yīng)清,gradle 就能自動(dòng)的識(shí)別這個(gè)子項(xiàng)目
比如我創(chuàng)建這樣一個(gè)子項(xiàng)目名稱是greeting-library
子項(xiàng)目中的配置未見(jiàn)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" }
父項(xiàng)目中的setting.gradle中添加這樣一條配置
include "greeting-library"
這樣就能使用greeting-library目錄下的gradle子項(xiàng)目了
一個(gè)簡(jiǎn)單的項(xiàng)目這使用一個(gè)簡(jiǎn)單的項(xiàng)目介紹一下這個(gè)如何使用gradle 實(shí)現(xiàn)整合打包
項(xiàng)目結(jié)構(gòu)和模塊劃分├── 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
這個(gè)項(xiàng)目中劃分為根項(xiàng)目gradle-demo,包項(xiàng)目greeting-library,core可運(yùn)行項(xiàng)目greeter。
注意: 通過(guò)上面的例子我們可以得出,在gradle 中不同的子項(xiàng)目的命名規(guī)則是使用文件夾的
注意:在java 項(xiàng)目中,gradle 要求 必須指定項(xiàng)目的main函數(shù)具體方法見(jiàn)下方
這里針對(duì)gradle的多語(yǔ)言的編程的目錄結(jié)構(gòu)做一下補(bǔ)充,gradle中源代碼同意放置在這樣的位置中src->main/test->編程語(yǔ)言名稱文件夾 下
plugins { id "java" id "application" } group "com.kyssion" version "1.0-SNAPSHOT" sourceCompatibility = 1.8 mainClassName = "greeter.Greeter" //這一句指定了main函數(shù) repositories { mavenCentral() } dependencies { compile project(":greeting-library") testCompile group: "junit", name: "junit", version: "4.12" }總結(jié)
在構(gòu)建gradle 多模塊項(xiàng)目的時(shí)候,一定要注意多模塊的之間的引用,模塊中main函數(shù)的編寫(xiě),父模塊的include
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/73430.html
摘要:最近想深入的學(xué)習(xí)一下工程化方面相關(guān)的東西,在和直接糾結(jié)不已,因?yàn)榈臄U(kuò)展性太差勁了,學(xué)習(xí)成本頗高,所以最后投入了的懷抱中,以后有時(shí)間再重新學(xué)習(xí)一下吧最近的學(xué)習(xí)筆記是基于系列,其中各種教程和例子大都是來(lái)源于官方文檔或者網(wǎng)絡(luò)上的博客。 最近想深入的學(xué)習(xí)一下工程化方面相關(guān)的東西,在maven和gradle直接糾結(jié)不已,因?yàn)閙aven的擴(kuò)展性太差勁了,學(xué)習(xí)成本頗高,所以最后投入了gradle的懷...
摘要:是一個(gè)基于和概念的項(xiàng)目自動(dòng)化構(gòu)建工具。當(dāng)前其支持的語(yǔ)言限于和主要面向應(yīng)用。本次分享將具體講述如何利用來(lái)創(chuàng)建一個(gè)簡(jiǎn)單的項(xiàng)目。首先我們新建一個(gè)文件夾作為展示的項(xiàng)目。中的代碼如下這是用來(lái)定義項(xiàng)目。接著創(chuàng)建文件夾,這是項(xiàng)目開(kāi)發(fā)中習(xí)慣性的構(gòu)建方法。 ??Gradle是一個(gè)基于Apache Ant和Apache Maven概念的項(xiàng)目自動(dòng)化構(gòu)建工具。它使用一種基于Groovy的特定領(lǐng)域語(yǔ)言(DSL)...
摘要:項(xiàng)目結(jié)構(gòu)下面是我們創(chuàng)建項(xiàng)目生成的目錄展開(kāi)目錄如下配置文件,由系統(tǒng)自動(dòng)生成,一般情況下不需要進(jìn)行修改開(kāi)發(fā)工具的信息默認(rèn)啟動(dòng)模塊主模塊,開(kāi)發(fā)者用于編寫(xiě)源碼文件以及開(kāi)發(fā)資源文件的目錄用于存放模塊的依賴文件用于存放源碼用于存放應(yīng)用所用到的資源文件 1.項(xiàng)目結(jié)構(gòu) 下面是我們創(chuàng)建項(xiàng)目生成的目錄 1.M...
摘要:項(xiàng)目結(jié)構(gòu)下面是我們創(chuàng)建項(xiàng)目生成的目錄展開(kāi)目錄如下配置文件,由系統(tǒng)自動(dòng)生成,一般情況下不需要進(jìn)行修改開(kāi)發(fā)工具的信息默認(rèn)啟動(dòng)模塊主模塊,開(kāi)發(fā)者用于編寫(xiě)源碼文件以及開(kāi)發(fā)資源文件的目錄用于存放模塊的依賴文件用于存放源碼用于存放應(yīng)用所用到的資源文件 1.項(xiàng)目結(jié)構(gòu) 下面是我們創(chuàng)建項(xiàng)目生成的目錄 1.M...
閱讀 1738·2021-11-15 11:37
閱讀 3484·2021-09-28 09:44
閱讀 1739·2021-09-07 10:15
閱讀 2858·2021-09-03 10:39
閱讀 2754·2019-08-29 13:20
閱讀 1359·2019-08-29 12:51
閱讀 2270·2019-08-26 13:44
閱讀 2186·2019-08-23 18:02