gradle idea 整合WEB开发

之前一直在用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.xml

build.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 

参考: 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的添加, 与其它项目一样的使用. 

你可能感兴趣的:(maven,gradle,idea)