文档章节

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

Tek_Eternal
 Tek_Eternal
发布于 2015/03/22 20:15
字数 989
阅读 44611
收藏 53

使用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

	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作为一个新兴的构建工具,有很多好玩的地方,解决完工程搭建后,要好好研究研究才行:)

© 著作权归作者所有

Tek_Eternal
粉丝 11
博文 24
码字总数 16362
作品 0
福州
程序员
私信 提问
加载中

评论(10)

文峰最厉害
文峰最厉害
xiexin?
QAQ-Lee
QAQ-Lee
web.xml 这里 com.jfinal.demo.Config 也写的有问题。
QAQ-Lee
QAQ-Lee
DemoConfig 和 DemoController 的文字和图片放的位置错了
小白的大白在哪里
小白的大白在哪里
在IDEA的gradle工具栏中运行"build"命令, 这个gradle的工具栏在哪里
xtdhwl
xtdhwl
gradle是编译工具类似ant执行编译脚本build.gradle。maven处理依赖,groupid于artiect id是maven模型。我理解为使用gradle来执行maven所以需要填写maven内容
张冬
张冬

引用来自“a_ye”的评论

好,但为啥我每次new project时都需要新建 groupid 和artiect id 的呢?

引用来自“Vincent7”的评论

这是是maven的模型

引用来自“gomars”的评论

但是"New Project"->"Gradle"这一步选择的是Gradle,为什么是maven模型,怎么能使用gradle的方式
同问……我的也需要填 groupid和artiectid
gomars
gomars

引用来自“a_ye”的评论

好,但为啥我每次new project时都需要新建 groupid 和artiect id 的呢?

引用来自“Vincent7”的评论

这是是maven的模型
但是"New Project"->"Gradle"这一步选择的是Gradle,为什么是maven模型,怎么能使用gradle的方式
JustForOS
JustForOS
project不是工作空间么,为啥会有 src这些规范目录??
V
Vincent7

引用来自“a_ye”的评论

好,但为啥我每次new project时都需要新建 groupid 和artiect id 的呢?
这是是maven的模型
binggan
binggan
好,但为啥我每次new project时都需要新建 groupid 和artiect id 的呢?
intellij idea gradle java home问题

使用intellij idea创建android项目,gradle project sync failed,提示:java home 不一致。我设置都一样的。环境变量和project structure里面设置的jdk都是同一个目录下的jdk。 具体报错信息...

-Jacen-
2017/03/15
615
0
Jib 1.0.0 GA 发布:构建 Java Docker 镜像从未如此简单

为了更方便将 Java 应用程序容器化,Google 于去年推出了 Jib 工具。Jib 是一个快速而简单的容器镜像构建工具,它负责处理将应用程序打包到容器镜像中所需的所有步骤。 Docker 构建流程 Jib ...

局长
02/13
0
21
为 Java 应用构建容器镜像 - Jib

Jib 是 Google 开发的可以直接构建 Java 应用的 Docker 和 OCI 镜像的类库,以 Maven 和 Gradle 插件形式提供。 通过 Jib,Java 开发者可以使用他们熟悉的 Java 工具来构建容器。Jib 是一个快...

匿名
2018/07/10
0
0
Google Jib 即将迎来正式版

Google Jib 用于封装 Java 应用,在去年夏天发布测试版。Jib 是一个快速而且简单的容器镜像构建器,他整合了将应用程序打包成镜像的所有步骤,而且支持开发人员使用其他 Java 容器工具构建镜...

程六金
02/17
0
2
Spring Boot(1)——开发你的第一款Spring Boot应用(Edition1)

Spring Boot(1)——开发你的第一款Spring Boot应用(Edition1) 准备工作: java:java 8 或者 java 9; Spring框架:5.0.8.RELEASE或以上; Maven 3.2+ 或 Gradle 4。 开发步骤: im...

梁桦
2018/08/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

基础服务系列-Centos7 安装Node.js10

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. 简介 以官方centos镜像为基础,安装Node.js 10。 Unix prerequisites: gcc and g++ >= 6.3 or newer, or GNU ......

wuxinshui
49分钟前
2
0
Canonical修复了内核安全更新引入的回归问题

导读 Canonical今天发布了所有支持Ubuntu操作系统版本的新Linux内核版本,以解决最新内核安全更新引入的回归问题。 上周,Canonical发布了所有支持Ubuntu版本的Linux内核更新,以解决Jonatha...

问题终结者
今天
3
0
elasticSearch(四)——javaApi

一、

ittzg
今天
2
0
elasticseach 数据的导出与导出工具elasticdump使用

Centos下安装elasticdump yum install elasticdump 安装完成后 [root@i-vvxxxxswtw5ne ~]# elasticdump --helpelasticdump: Import and export tools for elasticsearchversion: 2.2.0......

scgaopan
今天
5
0
DNS域名解析命令 —— nslookup

命令nslookup 名称: name server lookup 用途: 查询域名的DNS信息 语法: ]# nslookup [选项] [域名] 模式: 交互式、非交互式 交互式选项: 实例: 交互式: 非交互式: 查询域名 ]# nsl...

迷失De挣扎
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部