Gradle使用入門教程(java web項目)

Gradle是一個基於groovy語言的構建工具,很多人都喜歡它,因爲它簡單,明瞭;沒像maven使用xml臃腫,其實在我看來構架工具使用xml,格式化更強。我是比較喜歡maven的,但是對gradle還是需要的,所以記錄一下使用方法。

下面是gradle的優點,一起來看一下吧。

  1. 按約定聲明構建和建設;
  2. 強大的支持多工程的構建;
  3. 強大的依賴管理(支持maven、Ivy等倉庫),提供最大的便利去構建工程;
  4. 全力支持已有的 Maven 或者Ivy倉庫基礎建設;
  5. 支持傳遞性依賴管理,在不需要遠程倉庫和pom.xml和ivy配置文件的前提下;
  6. 基於groovy腳本構建,其build腳本使用groovy語言編寫;
  7. 具有廣泛的領域模型支持構建;
  8. 深度 API;
  9. 易遷移;
  10. 自由和開放源碼,Gradle是一個開源項目,基於 ASL 許可。

以上說的都是廢話,我們一起來看一下gradle構建一個java web項目的過程吧!

1. 構建基於gradle的項目

這裏我們使用idea構建基於gradle的項目,這些地方我們就不必要累述了,按照工具的順序,一步一步的往下走就行啦。

2. 給項目添加web元素

我們構建成功項目以後,會發現src/main下只有javaresource文件夾,有時候這兩個文件夾也沒有,如果沒有javaresource,請自行添加。

我們在src/main下添加webapp文件夾。並添加WEB-INF文件夾,添加web.xml文件。這些比較簡單,就不再說啦;如果不會添加的,請自行百度搜索一下怎麼添加。

如果你使用idea,則需要添加一下web.xml到項目,不然的話,web.xml中的servlet會報錯哦。點擊File >> project Structure …;選擇facets,選擇web項目,添加一下web.xml;如圖:
在這裏插入圖片描述

3.維護Build.gradle文件

首先我們的項目一般都要打成war包;這是我們就要引用gradle的一個插件:

apply plugin: 'java'
apply plugin: 'war'

我們創建項目的時候,使用的是maven的默認中央倉庫,如下:

repositories {
	mavenCentral()
}

maven的這個中央倉庫在國外,我們下載jar包時會非常的慢,因此我們修改爲aliyun的maven倉庫:

repositories {
	// 首先查找本地的倉庫
	mavenLocal()
	// 查找aliyun中央倉庫 
	maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}

接下來引入我們的依賴內容:

// 這裏我們可以放一些公共的屬性值
ext{
	spring_version="4.3.21.RELEASE"
}

dependencies {
	// spring依賴
	compile group: 'org.springframework', name: 'spring-aop', version: ${spring_version}
	compile "org.springframework:spring-aspects:${spring_version}"
	compile (
		"org.springframework:spring-beans:${spring_version}",
		"org.springframework:spring-core:${spring_version}",
		"org.springframework:spring-context:${spring_version}",
		"org.springframework:spring-context-support:${spring_version}",
		"org.springframework:spring-web:${spring_version}",
		"org.springframework:spring-webmvc:${spring_version}",
			// junit測試模塊
		"junit:junit:4.12",
	) 

我們這樣基本已經完成項目的構建啦,但是還有一個問題,web項目的啓動方式,有一部分人會繼承外部的Tomcat來啓動項目,但是我們既然使用工具啦,而且gradle也有Tomcat這個插件,我就直接繼承Gradle的Tomcat吧!

/*
這種方式時比較老的方式,在2.0及其一下的版本繪製用這種方式
buildscript {
	repositories {
		jcenter()
	}
	dependencies {
		classpath "com.bmuschko:gradle-tomcat-plugin:2.2.3"
	}
}
apply plugin: "com.bmuschko.tomcat"
*/

// 一句話解決所有依賴,2.1及其以上版本語法
plugins {
    id 'java'
    id 'war'
    id 'com.bmuschko.tomcat' version '2.2.3'
}

// 設置tomcat的版本
dependencies {
    def tomcatVersion = '8.0.27'
    tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
           "org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}",
           "org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}"
}

// 設置不同啓動方訪問的路徑
tomcatRun.contextPath = '/simpleDemo'
tomcatRunWar.contextPath = '/simpleDemo'

這樣子tomcat就集成成功啦,有沒有很簡單,我們只需要執行tomcatRun或者tomcatRunWar命令項目就會使用gradle所集成的tomcat運行我們的web項目。

總結

然我們看一下我們項目的完整版

plugins {
    id 'java'
    id 'war'
    id 'com.bmuschko.tomcat' version '2.2.3'
}

group 'com.simple'
version '1.0.0'

war.baseName = "simpleDemo"
project.webAppDirName = "src/main/webapp"

sourceCompatibility = 1.8

repositories {
    // mavenCentral()
    mavenLocal()
    maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}

ext{
	spring_version="4.3.21.RELEASE"
	junit_version="4.12"
}

dependencies {
    // spring依賴
compile (
    "org.springframework:spring-aop:${spring_version}",
    "org.springframework:spring-aspects:${spring_version}",
    "org.springframework:spring-beans:${spring_version}",
    "org.springframework:spring-core:${spring_version}",
    "org.springframework:spring-context:${spring_version}",
    "org.springframework:spring-context-support:${spring_version}",
    "org.springframework:spring-web:${spring_version}",
    "org.springframework:spring-webmvc:${spring_version}",
    "org.springframework:spring-orm:${spring_version}",
    "junit:junit:${junit_version}",
)

def tomcatVersion = '8.0.27'
tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
       "org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}",
       "org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}"
}

tomcatRun.contextPath = '/simpleDemo'
tomcatRunWar.contextPath = '/simpleDemo'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章