gradle idea 整合WEB開發

以前一直在用maven來作爲項目管理, 可是好多時候不夠靈活, 最近看到gradle以爲不錯, 因此將如今的一個項目轉成gradle. java


gradle的介紹我就不說了, 直接說說與idea的整合, 由於在這個過程當中遇到了不少問題. 以前一個朋友使用IDEA+GRADLE也是用的命令行. 並且不能直接在idea裏面啓動tomcat來調試, 確實不方便 web

首先, IDEA使用12這個版本, 13就先別用了, gradle插件不穩定. spring

maven過來, 有一點會以爲不方便, 那就是profile配置, 由於在gradle裏面是沒有默認profile的, 可是它卻有其它的一些方式, 網上也有不少方案, 有模仿profile的, 也有其它方式的. 這裏我只介紹我使用的. tomcat

使用編譯替換. app

目錄結構: webapp

src
---main
------resources
---------dev
------------core.properties
---------work
------------core.properties
---------public
------------core.properties
------------spring.xml
------------controller.xml maven

build.gradle配置 ide

//環境參數
env = System.getProperty("env") ?: "dev"
sourceSets {
    main {
        output.resourcesDir = "${buildDir}/classes/main"
        java {
            resources {
                srcDirs = ["src/main/resources/public", "src/main/resources/$env"]
            }
        }
    }
} gradle

這裏添加一個sourceSets配置,使用env變量來改變打包目錄. ui

    打test環境包命令就是 gradle war -Denv=test 

參考: http://bloodwolf-china.iteye.com/blog/1779681

下面就是IDEA的配置了, 

apply plugin: "idea"

idea{
    module{
    inheritOutputDirs = false
        outputDir = file("${buildDir}/classes/main")
    }
}

以上是配置idea插件, inheritOutputDirs 是否繼承project的輸出目錄, outputDir修改當前module的輸出目錄. 這個改變, 能夠在IDEA中的項目屬性->module->paths裏面看到改變. 這一步是爲了後面作準備

如今的idea項目是沒有web支持的, 不能直接與tomcat作整合.

項目屬性->module, 右鍵module->add->web, 而後修改face web裏面的web module deployment Descriptor, 使它指向web.xml. 修改Web Resource Directories爲webapp目錄. 若是不配置這一步, 會致使下一步中build時刪除全部靜態文件.

配置靜態文件熱部署.

進入artifacts, 點+ -> web application: exploded. 而後將output directory 爲項目中的webapp目錄. 

在下面的output root裏面添加WEB-INF以及classes, lib, 能夠在右邊雙擊添加. 

如今項目就配置好了, 至於tomcat的添加, 與其它項目同樣的使用. 

相關文章
相關標籤/搜索