1. 程式人生 > >Gradle學習之構建java與web項目

Gradle學習之構建java與web項目

jcenter yun 接口 webxml oot conf ava getc clas

一.使用Gradle的java插件構建Java項目

1)Gradle插件包含了若幹個接口定義和已有的任務項,語法結構:apply plugin:‘插件名‘ ,此處我們定義插件

apply plugin : ‘java‘

2)Gradle希望我們的java項目需要遵循以下規範:

    src/main/java :放置java源文件
    src/test/java :放置測試文件,比如單元測試等
    src/main/resources: 此目錄下的文件會被作為資源文件打入jar包
    src/test/resources: 放置提供給測試用的配置文件


3) java插件包含了若幹個構建項目的任務,最常用的就是build任務,當我們運行build任務時,Gradle會編譯,運行我們的測試腳本(類)並生成jar文件在build/lib下

4) 其他常用的任務:
    clean:刪除已經構建的目錄及其文件
    assemble:編譯並生成Jar或者war文件,註意不會運行測試文件
    check:編譯並測試代碼

二.外部依賴

1)和maven類似,如果要在項目中添加所依賴的外部jar文件,我們必須要告訴Gradle在哪裏找到它們
語法:

 1 repositories {
 2     jcenter()
 3     mavenLocal() //maven本地倉庫
 4     mavenCentral() //maven中心倉庫
 5     /* 
 6         指定maven遠程倉庫地址
7 */ 8 maven { url ‘http://maven.aliyun.com/nexus/content/groups/public/‘ } 9 maven { url "http://repo.spring.io/snapshot" } 10 maven { url "http://repo.spring.io/milestone" } 11 }

2)當指定好倉庫地址時,我們可以添加依賴
語法:

dependencies{
  compile group:‘類似於maven中的groupid‘,name:‘類似於maven中的affactid‘,version:‘版本號‘
  compile 
‘group:name:version‘ }

三.java多項目構建

1)gradle也可以支持多項目構建,比如說如下項目:

  multiproject/
    api/
    services/webservice/
    shared/
    services/shared/
2)此時我們要在settings.gradle裏配置 依賴的模塊:

include "shared", "api", "services:webservice", "services:shared"


3)比如說 shared要依賴api 語法:

dependencies {
  compile project(‘:shared‘)
}

4)常見屬性
sourceCompatibility: 使用哪種JDK版本編譯
targetCompatibility : 生成class的Java版本

四。構建web項目

1)需要添加web插件:apply plugin:‘war‘
2) war任務 主要用於將web應用程序打包成war
3) 與maven規範一致:web的相關資源位於src/main/webapp下

使用示例:

war {
    from ‘src/rootContent‘ // adds a file-set to the root of the archive
    webInf { from ‘src/additionalWebInf‘ } // adds a file-set to the WEB-INF dir.
    classpath fileTree(‘additionalLibs‘) // adds a file-set to the WEB-INF/lib dir.
    classpath configurations.moreLibs // adds a configuration to the WEB-INF/lib dir.
    webXml = file(‘src/someWeb.xml‘) // copies a file to WEB-INF/web.xml
}

另外我們可以設置webAppDirName來指定我們web上下文路徑

Gradle學習之構建java與web項目