使用IntelliJ IDEA,gradle开发Java web应用步骤

http://www.open-open.com/lib/view/1427034613470

使用IntelliJ IDEA,gradle开发Java web应用步骤

最近 正在学习gradle构建工具的使用,看了一堆的文档,有点一知半解,索性动作实践一把,在以后的自己的项目中尝试使用看看。目前手头用的是 IntelliJ IDEA 14,搭建了一天终于明白怎么集成gradle赖开发Java web,就在这里记下来以后备用。

准备工作

  1. 本机安装好gradle
  2. 安装好java环境和IDEA 14
  3. 准备好tomcat
  4. 使用Jfinal jar包,后续做一个简单的Demo

工程创建步骤

  1. 打开IDEA,选择“New Project”->“Gradle”,勾选图中的几个选项,在“gradle home”中填上本机gradle的安装目录,点击“next”。 

  2. 填写工程名。点“finish”。 

  3. 生成项目后目录结构如下,其中lib是手动建立的目录,用来放一些从本地导入的依赖包,后面Jfinal的jar包就在这里。其他目录都是IDEA根据gradle规范生成的。 

  4. 创建webapp目录,就是java的web目录(Eclipse中的WebRoot),存放jsp文件和WEF-INF等文件的地方。根据gradle目录规范。编辑build.gradle文件,在开头添加一个apply plugin: 'war',在IDEA的gradle工具栏中运行"build"命令,就会生成在src/main下生成一个webapp文件夹,并且在项目的Modules中生成一个Web项目。

  5. 创建web.xml文件。点击"File”->“Project Structrue”。在对话框中选择"Modules”,选择右边的项目下上一步生成的Web项目,点"Deployment Descriptor"中的绿色加号,在/src/main/webapp下添加一个web.xml文件。 

  6. 这时一个java web项目的结构就已经搭建好了,看到项目菜单里的webapp文件夹已经有个小地球的标志。现在就可以按照在IDEA下java web开发的的操作开发web项目了。

  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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?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

?
1
2
3
4
5
6
7
8
9
10
package com.jfinal.demo;
 
import com.jfinal.core.Controller;
 
public class DemoController  extends Controller{
     public void hello(){
        renderText( "hello world" );
     }
 
}

DemoController.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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作为一个新兴的构建工具,有很多好玩的地方,解决完工程搭建后,要好好研究研究才行:)

来自:http://my.oschina.net/u/1010578/blog/390094

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值