之前一直在用maven来做为项目管理, 但是好多时候不够灵活, 最近看到gradle觉得不错, 所以将现在的一个项目转成gradle.
gradle的介绍我就不说了, 直接说说与idea的整合, 因为在这个过程中遇到了很多问题. 之前一个朋友使用IDEA+GRADLE也是用的命令行. 而且不能直接在idea里面启动tomcat来调试, 确实不方便
首先, IDEA使用12这个版本, 13就先别用了, gradle插件不稳定.
maven过来, 有一点会觉得不方便, 那就是profile配置, 因为在gradle里面是没有默认profile的, 但是它却有其它的一些方式, 网上也有很多方案, 有模仿profile的, 也有其它方式的. 这里我只介绍我使用的.
使用编译替换.
目录结构:
src
---main ------resources ---------dev ------------core.properties ---------work ------------core.properties ---------public ------------core.properties ------------spring.xml ------------controller.xmlbuild.gradle配置
//环境参数
env = System.getProperty("env") ?: "dev" sourceSets { main { output.resourcesDir = "${buildDir}/classes/main" java { resources { srcDirs = ["src/main/resources/public", "src/main/resources/$env"] } } } }这里添加一个sourceSets配置,使用env变量来改变打包目录.
打test环境包命令就是 gradle war -Denv=test
参考:
下面就是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的添加, 与其它项目一样的使用.