什麼是Buildship?
Buildship能方便我們通過Eclipse IDE創建和導入Gradle工程,同時還能執行Gradle任務。
Eclipse上安裝Buildship
建議直接去Eclipse market處下載,簡單方便,如下圖:

Buildship的更多信息
請參考以下鏈接,有教程,比較簡單,
主要內容:
如何導入Gradle工程,
如何創建Gradle工程,
如何執行Gradle任務,
等。。。
http://projects.eclipse.org/projects/tools.buildship
http://www.vogella.com/tutorials/EclipseGradle/article.html
主要作用是方便編輯gradle文件,提供語法高亮功能,另外該插件也非常精簡,大小小於50k。
高亮效果及安裝方式如下圖:

官網下載Gradle安裝包,如下鏈接
http://services.gradle.org/distributions
我下載的是gradle-2.14.1-bin.zip包,下載後解壓到硬盤路徑即可,想配環境變量的可以配置下,既然打算用Eclipse集成Buildship了,我也就懶得配置了。
這個我稍微翻譯一下,最好直接參考官方文檔:
1、通過File ▸ New ▸ Other… 菜單入口找到創建Gradle Project選項,如下圖:

點擊下一步,輸入工程名字,工程位置,以及所屬的工作集(可選,用於工程分組),

點擊下一步,如下圖所示,這裡我們選擇自己的Gradle本地安裝路徑,如下圖:

在以上步驟中,點擊完成按鈕,會觸發gradle init --type java-library命令的執行,並導入該工程到Eclipse IDE中;
點擊下一步可預覽即將創建的Gradle工程,如下圖,

創建好的工程

很簡單,跟平常工程的導入類似,只不過工程類型選擇導入Gradle Project而已,可參考以下鏈接:
http://www.vogella.com/tutorials/EclipseGradle/article.html#import-an-existing-gradle-project
工程右鍵,配置->Add Gradle Nature即可,如果沒有Gradle相關的文件,可以執行gradle init命令生成:

首先,Eclipse上創建一個Dynamic Web project,然後將其轉成Gradle工程,可參考前面的步驟;
然後,改造下工程目錄,如下圖,跟maven的目錄一樣,另外把resources目錄添加到構建路徑下,


最後主要就是build.gradle文件的配置了
我這邊主要用了三個插件,配置如下,
相關插件官方文檔都比較完善。
buildscript{
repositories {
mavenLocal()
jcenter()
maven{ url 'http://maven.d.com/content/groups/public/'}
mavenCentral()
}
dependencies {
classpath 'org.hidetake:gradle-ssh-plugin:2.6.0'
classpath 'org.akhikhl.gretty:gretty:+'
}
}
apply plugin: 'war'
apply plugin: 'org.akhikhl.gretty'
apply plugin: 'org.hidetake.ssh'
gretty {
servletContainer = 'tomcat7'
contextPath = '/dss'
//httpPort = 8080
fastReload = false
recompileOnSourceChange = false
reloadOnClassChange = false
reloadOnConfigChange = false
reloadOnLibChange = false
enableNaming = true
}
ssh.settings {
knownHosts = allowAnyHosts
}
remotes {
deployServer {
host = 'XX.XX.XX.XX'
user = 'XXXX'
password = 'XXXXXX'
}
}
另外可以配下工程信息:
group 'com.cetiti.epdc' def artifactid = "dss" //version '0.1.0-SNAPSHOT' description = """Gradle WebApp of dss"""
buildDir = 'target
依賴查找倉庫:
repositories {
// Use 'jcenter' for resolving your dependencies.
// You can declare any Maven/Ivy/file repository here.
mavenLocal()
jcenter()
maven{ url 'http://maven.d.com/content/groups/public/'}
mavenCentral()
}
依賴配置:
dependencies {
// The production code uses the SLF4J logging API at compile time
compile "org.slf4j:slf4j-api:1.7.21"
//compile "org.slf4j:slf4j-log4j12:1.7.21"
compile "log4j:log4j:1.2.17"
compile "com.google.code.gson:gson:2.6.2"
compile "org.apache.commons:commons-lang3:3.4"
compile "org.springframework:spring-context:3.2.16.RELEASE"
compile "org.springframework:spring-web:3.2.16.RELEASE"
compile "org.springframework:spring-webmvc:3.2.16.RELEASE"
compile "org.springframework:spring-tx:3.2.16.RELEASE"
compile "org.springframework:spring-context-support:3.2.16.RELEASE"
compile "org.springframework:spring-jdbc:3.2.16.RELEASE"
compile "org.aspectj:aspectjweaver:1.8.7"
compile "com.alibaba:druid:1.0.15"
compile "ojdbc:ojdbc:6"
compile "org.mybatis:mybatis:3.2.8"
compile "org.mybatis:mybatis-spring:1.2.5"
compile "org.jasig.cas.client:cas-client-core:3.4.1"
compile "com.cetiti.common:cetiti-common:0.1.0"
compile "org.quartz-scheduler:quartz:1.8.6"
compile 'javax.servlet:servlet-api:2.5'
// Declare the dependency for your favourite test framework you want to use in your tests.
// TestNG is also supported by the Gradle Test task. Just change the
// testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add
// 'test.useTestNG()' to your build script.
testCompile 'junit:junit:4.12'
}
添加自定義任務,我這裡簡單的寫了四個任務,主要做以下幾件事,關閉tomcat、刪除war包及目錄、拷貝文件、啟動tomcat:
task shutdownTomcat() << {
ssh.run {
session(remotes.deployServer) {
println 'shut down tomcat...'
executeScript '''#!/bin/sh
cd /usr/local/dss-tomcat-7.0.47/bin
./shutdown.sh
'''
}
}
}
task del(dependsOn:shutdownTomcat) << {
ssh.run {
session(remotes.deployServer) {
println 'start deleting...'
executeScript '''#!/bin/sh
rm -rf /usr/local/dss-tomcat-7.0.47/webapps/dss
rm -f /usr/local/dss-tomcat-7.0.47/webapps/dss.war
'''
}
}
}
task copy(dependsOn:del) << {
ssh.run {
session(remotes.deployServer) {
println 'start copying war...'
put from: buildDir.toString() + '/libs/dss.war', into: '/usr/local/dss-tomcat-7.0.47/webapps'
}
}
}
task deploy(dependsOn:copy) << {
ssh.run {
session(remotes.deployServer) {
println 'start tomcat...'
execute '/usr/local/dss-tomcat-7.0.47/bin/startup.sh'
}
}
}
執行Gradle Task視圖裡的任務:
Eclipse IDE上打開Gradle Task視圖,不知道為什麼,我這邊添加了相關插件之後,任務列表不會馬上顯示,需要重啟Eclipse,可能是Buildship的Bug。

執行自定義任務:
工程右鍵,run as,打開運行配置,輸入命令即可

首先要安裝jenkins的gradle插件,我這裡假設已經安裝好了,不知道怎麼安裝的參考網絡,
1、選擇構建一個自由風格的軟件項目
2、配置,很簡單,見圖:


