上一篇gradle學習文章學到構建java項目,這一篇來看看怎么講上一次的java項目變成eclipse項目
## 1.標示eclipse項目
~~~
apply plugin: 'eclipse'
~~~
build.gradle如下
~~~
apply plugin: 'java'
apply plugin:'eclipse'
repositories{
mavenCentral()
}
dependencies {
compile group:'commons-collections',name:'commons-collections',version:'3.2'
testCompile group:'junit',name:'junit',version:'4.0+'
}
sourceCompatibility = 1.5
version = '2.0'
jar {
manifest {
attributes 'Implementation-Title':'Gradle Quickstart',
'Implementation-Version':version
}
}
test {
systemProperties 'property':'value'
}
uploadArchives {
repositories {
flatDir {
dirs 'repos'
}
}
}
~~~
執行gradle eclipse構建項目
~~~
<pre name="code" class="html">qianhuis-Mac-mini:1228_1 qianhui$ gradle eclipse
:eclipseClasspath
Download https://repo1.maven.org/maven2/commons-collections/commons-collections/3.2/commons-collections-3.2.pom
Download https://repo1.maven.org/maven2/junit/junit/4.0/junit-4.0.pom
Download https://repo1.maven.org/maven2/commons-collections/commons-collections/3.2/commons-collections-3.2.jar
Download https://repo1.maven.org/maven2/junit/junit/4.0/junit-4.0.jar
Download https://repo1.maven.org/maven2/commons-collections/commons-collections/3.2/commons-collections-3.2-sources.jar
Download https://repo1.maven.org/maven2/junit/junit/4.0/junit-4.0-sources.jar
:eclipseJdt
:eclipseProject
:eclipse
BUILD SUCCESSFUL
Total time: 2 mins 33.783 secs
~~~
但是目錄結構沒發現什么改變,希望隨著學習的深入能發現什么端倪。
## 2.多重項目構建
項目目錄結構如下:
multprojec目錄下含有3個項目[api,services,shared],services項目下又含有[shared,webservice]

## 3.settings.gradle
為了構建多重項目,需要在多重項目的根目錄定義一個文件,包含所有的子項目。該文件名必須定義為settings.gradle
~~~
qianhuis-Mac-mini:multproject qianhui$ touch settings.gradle
qianhuis-Mac-mini:multproject qianhui$
~~~
在該文件中用include來包含所有的子項目
~~~
include "shared","api","services:webservice","services:shared"
~~~

## 4.配置注入
使用configuration injection來管理所有的項目,主項目像一個容器,通過subprojects方法能夠遍歷所有的子項目,然后為每一個項目注入特殊的配置信息。這樣我們就能夠很容易的為依賴和壓縮包定義配置內容。如下所示,我們首先根據settings.gradle里的配置信息得到所有的子項目,然后逐個位每個項目注入下面的配置。
~~~
subprojects{
apply plugin:'java'
apply plugin:'eclipse-wtp'
repositories{
mavenCentral()
}
dependencies{
testCompile 'junit:junit:4.11'
}
jar{
manifest.attributes provider:'gradle'
}
}
~~~
這個時候在根項目下執行gradle build,你會發現它為每個項目都做了構建
~~~
qianhuis-Mac-mini:multproject qianhui$ gradle build
:api:compileJava UP-TO-DATE
:api:processResources UP-TO-DATE
:api:classes UP-TO-DATE
:api:jar
:api:assemble
:api:compileTestJava UP-TO-DATE
:api:processTestResources UP-TO-DATE
:api:testClasses UP-TO-DATE
:api:test UP-TO-DATE
:api:check UP-TO-DATE
:api:build
:services:compileJava UP-TO-DATE
:services:processResources UP-TO-DATE
:services:classes UP-TO-DATE
:services:jar
:services:assemble
:services:compileTestJava UP-TO-DATE
:services:processTestResources UP-TO-DATE
:services:testClasses UP-TO-DATE
:services:test UP-TO-DATE
:services:check UP-TO-DATE
:services:build
:shared:compileJava UP-TO-DATE
:shared:processResources UP-TO-DATE
:shared:classes UP-TO-DATE
:shared:jar
:shared:assemble
:shared:compileTestJava UP-TO-DATE
:shared:processTestResources UP-TO-DATE
:shared:testClasses UP-TO-DATE
:shared:test UP-TO-DATE
:shared:check UP-TO-DATE
:shared:build
:services:shared:compileJava UP-TO-DATE
:services:shared:processResources UP-TO-DATE
:services:shared:classes UP-TO-DATE
:services:shared:jar
:services:shared:assemble
:services:shared:compileTestJava UP-TO-DATE
:services:shared:processTestResources UP-TO-DATE
:services:shared:testClasses UP-TO-DATE
:services:shared:test UP-TO-DATE
:services:shared:check UP-TO-DATE
:services:shared:build
:services:webservice:compileJava UP-TO-DATE
:services:webservice:processResources UP-TO-DATE
:services:webservice:classes UP-TO-DATE
:services:webservice:jar
:services:webservice:assemble
:services:webservice:compileTestJava UP-TO-DATE
:services:webservice:processTestResources UP-TO-DATE
:services:webservice:testClasses UP-TO-DATE
:services:webservice:test UP-TO-DATE
:services:webservice:check UP-TO-DATE
:services:webservice:build
BUILD SUCCESSFUL
Total time: 6.571 secs
~~~
相應的子項目目錄下都生成了jar包。但是要注意上面的配置不會對root project產生作用。
## 5.項目之間的依賴
比如A項目依賴B項目,那么在A項目下定義一個build.gradle 。寫法如下:
~~~
dependencies{
compile project(':B')
}
~~~
那么在A項目構建前,會先構建B項目。然后將B項目的jar包作為A項目的依賴jar,構建A的jar包。
## 6.調配項目
~~~
task dist(type: Zip) {
dependsOn spiJar
from 'src/dist'
into('libs') {
from spiJar.archivePath
from configurations.runtime
}
}
artifacts {
archives dist
}
~~~
具體的信息學習完再講。暫時我也不清楚
- 前言
- gradle學習(1)-helloworld
- gradle學習(2)-基礎語法
- gradle學習(3)-基礎認識
- gradle學習(4)-構建java項目
- gradle學習(5)-創建eclipse項目
- gradle學習(6)-依賴管理
- gradle學習(7)-groovy
- gradle學習(8)-gradle的命令行
- gradle學習(9)-獲取build相關信息
- gradle學習(10)-gui
- gradle學習(11)-編寫構建腳本
- gradle學習(12)-groovy一些基礎語法
- gradle學習(13)-有的沒的
- gradle學習(14)-任務
- gradle學習(15)-任務
- gradle學習(16)-操作文件
- gradle學習(17)-被合并的ant
- gradle學習(18)-ant的屬性
- gradle學習(19)-log系統
- gradle學習(20)-詳解java插件
- gradle學習(21)-在eclipse中構建java項目
- gradle復習(1)-2種定義任務方式的區別
- gradle復習(2)-eclipse中添加依賴jar包
- gradle復習(3)-在gradle項目中使用TestNG
- gradle復習(4)-Cannot find System Java Compiler
- gradle復習(5)-Test remote debug
- gradle復習(6)-深入Jacoco
- gradle復習(7)-深入Jacoco
- gradle復習(8)-Task中行為
- gradle學習(22)-Sonar
- gradle學習(23)-Sonar runner