使用IntelliJ IDEA,gradle開發Java web應用步驟

使用IntelliJ IDEA,gradle開發Java web應用步驟

最近 正在學習gradle構建工具的使用,看了一堆的文檔,有點只知其一;不知其二,索性動做實踐一把,在之後的本身的項目中嘗試使用看看。目前手頭用的是IntelliJ IDEA 14,搭建了一天終於明白怎麼集成gradle賴開發Java web,就在這裏記下來之後備用。java

###準備工做web

  1. 本機安裝好gradle
  2. 安裝好java環境和IDEA 14
  3. 準備好tomcat
  4. 使用Jfinal jar包,後續作一個簡單的Demo

###工程建立步驟apache

  1. 打開IDEA,選擇「New Project」->"Gradle",勾選圖中的幾個選項,在「gradle home」中填上本機gradle的安裝目錄,點擊「next」。 tomcat

  2. 填寫工程名。點「finish」。 app

  3. 生成項目後目錄結構以下,其中lib是手動創建的目錄,用來放一些從本地導入的依賴包,後面Jfinal的jar包就在這裏。其餘目錄都是IDEA根據gradle規範生成的。 webapp

  4. 建立webapp目錄,就是java的web目錄(Eclipse中的WebRoot),存放jsp文件和WEF-INF等文件的地方。根據gradle目錄規範。編輯build.gradle文件,在開頭添加一個apply plugin: 'war',在IDEA的gradle工具欄中運行"build"命令,就會生成在src/main下生成一個webapp文件夾,而且在項目的Modules中生成一個Web項目。jsp

  5. 建立web.xml文件。點擊"File"->"Project Structrue"。在對話框中選擇"Modules",選擇右邊的項目下上一步生成的Web項目,點"Deployment Descriptor"中的綠色加號,在/src/main/webapp下添加一個web.xml文件。 maven

  6. 這時一個java web項目的結構就已經搭建好了,看到項目菜單裏的webapp文件夾已經有個小地球的標誌。如今就能夠按照在IDEA下java web開發的的操做開發web項目了。ide

  7. 按照Jfinal的幫助文檔,把jar包導入,把web.xml配置好,寫好Demo類,而後用gradle build,一個web demo就編譯好了,後續只要啓動web容器,部署應用便可。工具

  8. gradle用jetty插件運行web項目更方便,我不是很熟悉jetty,這裏我仍是用IDEA啓動tomcat作測試。配置好tomcat,將gradle生成的artifacts(gradle構建時自動爲項目天剛加了2個artifacts,一個是項目的war包,一個是沒打包的exploded,推薦用exploded)添加到tomcat的deployment中。

  9. 點擊工具欄上的"run",啓動tomcat,容器啓動後部署應用,沒問題就能夠正常訪問站點了。

  10. 最後項目的目錄結構:

  11. 幾個文件的代碼:

build.gradle

apply plugin: 'java'
	//IntelliJ IDEA 插件
	apply plugin: 'idea'
	//war包插件
	apply plugin: 'war'

	sourceCompatibility = 1.6
	version = '1.0'

	repositories {
	//    使用開源中國的maven倉庫
		maven { url 'http://maven.oschina.net/content/groups/public/' }
	}

	dependencies {
		//導入本地的依賴包
		compile fileTree(dir: 'libs', include: ['*.jar'])
		//從maven倉庫導入依賴
		compile ('org.apache.httpcomponents:httpclient:4.4')
		compile ('org.apache.commons:commons-lang3:3.3.2')
	}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
	<web-app xmlns="http://java.sun.com/xml/ns/javaee"
			 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
			 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
			  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
			 version="3.0">

		<filter>
			<filter-name>jfinal</filter-name>
			<filter-class>com.jfinal.core.JFinalFilter</filter-class>
			<init-param>
				<param-name>configClass</param-name>
				<param-value>com.jfinal.demo.Config</param-value>
			</init-param>
		</filter>
		<filter-mapping>
			<filter-name>jfinal</filter-name>
			<url-pattern>/*</url-pattern>
		</filter-mapping>
	</web-app>

DemoConfig.java

package com.jfinal.demo;

import com.jfinal.core.Controller;

public class DemoController extends Controller{
    public void hello(){
       renderText("hello world");
    }

}

DemoController.java

package com.jfinal.demo;

import com.jfinal.config.*;
import com.jfinal.render.ViewType;

public class DemoConfig extends JFinalConfig {
    public void configConstant(Constants me) {
        me.setDevMode(true);
        me.setViewType(ViewType. JSP);
    }
    public void configRoute(Routes me) {
        me.add("/", DemoController. class);
    }
    public void configPlugin(Plugins me) {

    }
    public void configInterceptor(Interceptors me) {

    }
    public void configHandler(Handlers me) {

    }
}

###To Be Continue gradle做爲一個新興的構建工具,有不少好玩的地方,解決完工程搭建後,要好好研究研究才行:)

相關文章
相關標籤/搜索