项目自动化建构工具gradle 入门4——javaWeb在浏览器中显示helloWorld
在java应用中,其实做的最多的还是java web应用。所以现在我们做的就是用gradle构建一个简单的web项目,简单点,直接上代码吧。
1、进入目录D:\work\gradle\web,新建文件build.gradle,键入内容:
apply plugin: 'war' // 引入war插件,
repositories { // 从哪里找jar包
flatDir {
// 先看下build.gradle文件所在目录下的 libs目录中有没有
dirs 'libs'
}
maven {
//如果目录中木有,则找url对应的maven仓库,下面是阿里的maven仓库,速度杠杆的。
url "http://maven.oschina.net/content/groups/public/"
}
jcenter() // 官方默认仓库,JCenter相比mavenCenter构件更多,性能也更好
mavenCentral() //如果都木有,则取maven的官方仓库吧,某些构件只有此处有
}
dependencies {
providedCompile "javax.servlet:servlet-api:2.5"
testCompile "junit:junit:4.12"
}
war {
//from 'src/rootContent' // adds a file-set to the root of the archive
//webInf { from 'src/additionalWebInf' } // adds a file-set to the WEB-INF dir.
//classpath fileTree('additionalLibs') // adds a file-set to the WEB-INF/lib dir.
//classpath configurations.moreLibs // adds a configuration to the WEB-INF/lib dir.
//webXml = file('src/someWeb.xml') // copies a file to WEB-INF/web.xml
}
build.gradle
2、进入目录:D:\work\gradle\web\src\main\webapp\WEB-INF,新建文件web.xml,键入内容
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"> <welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list> </web-app>
3、进入目录D:\work\gradle\web\src\main\webapp,新建文件index.html,键入内容:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>hello,world</title>
</head>
<body>
<p>hello,world! welcome to gradle!</p>
</body>
</html>
index.html
4、进入目录D:\work\gradle\web,cmd下键入命令:gradle assemble
5、进入目录D:\work\gradle\web\build\libs,拷贝web.war 到tomcat服务器下的webapp目录下,我电脑上是D:\portable\apache-tomcat-9.0.0.M10\webapps。
6、进入tomcat 的 bin目录,双击startup.bat文件,启动tomcat服务器。我的电脑上是D:\portable\apache-tomcat-9.0.0.M10\bin\startup.bat。
7、在浏览器中输入地址:localhost:8080/web/index.html 能够看到结果了。

ok,到此都做完了,很简单的例子。
下面照例稍作解释:
步骤1:第一行的插件改为war,指明让gradle干生成war包的活。
repositories部分 和前几篇一样,不用改,这个是告诉gradle从哪里找代码中用到的jar包的。
dependencies部分是告诉gradle,代码依赖哪些jar包。
providedCompile 是指tomcat之类的服务器会提供的包,让gradle不要去下载和获取。
testCompile是指编译测试代码时需要的jar包
"javax.servlet:servlet-api:2.5" ,,这个怎么写,在<项目自动化建构工具gradle 入门2——log4j输出helloWorld> 的解释部分有一个暴力的做法。
war部分是告诉gradle生成war包有什么要注意的,一般都是拷贝某些文件到某个文件下之后再生成war包。该部分都注释掉了。有需要的时候再放开注释就好了。
步骤2是war包中必须的web.xml
步骤3是war包中提供的index.html,我们在浏览器中看到的就是这个页面。
步骤4是执行gradle指令,让gradle赶紧把war给生成了。
步骤5-7是把war包跑起来。
项目自动化建构工具gradle 入门4——javaWeb在浏览器中显示helloWorld的更多相关文章
- 项目自动化建构工具gradle 入门5——在intellij中做一个gradle的web工程
之前的几个小节,都是纯手工建文件夹,纯手工拷贝war包,或者纯手工解压个zip看看结果,,,,这还是我写了玩的helloWorld.若是玩大工程.几十个人的团队协同开发时,这么玩,,,,暴躁的程序员估 ...
- 项目自动化建构工具gradle 入门3——生一个exe的helloWorld
前两次呢,我们能够用一个外部的jar 来实现输出helloWorld.但问题是我每次都要用java -jar 来执行,这样我们自己玩还可以,让用户玩就不好了.所以我们生成一个exe给他们吧.这次我们仍 ...
- 项目自动化建构工具gradle 入门2——log4j输出helloWorld
上一章节呢,有一个能跑的程序了.但是对做工程的人来说,用日志输出感觉比用System.out要有档次一点.比如使用log4j.直接上例子: 1进入D:\work\gradle\log目录 ,您电脑没 ...
- 项目自动化建构工具gradle 入门0——环境 & 废话
gradle 是一个项目自动化构建工具.同类的产品还有ant ,maven等等.相比之下我更喜欢gradle,它语法简洁.兼容maven.ide集成很好. 学习使用gradle最快的方式是看文档,而且 ...
- 项目自动化建构工具gradle 入门1——输出helloWorld
先来一个简单的例子,4个步骤: 1.进入D:\work\gradle\java 目录 ,您电脑没这目录? 那辛苦自己一级一级建立起来吧 新建文件build.gradle,文件内容是: apply p ...
- 前端项目自动化构建工具——Webpack入门教程
参考资料:https://www.webpackjs.com/(中文文档) https://www.webpackjs.com/(官方文档) 首先有必要说明一下,本文侧重讲解webpack基本配置 ...
- 基于 Groovy 的自动化构建工具 Gradle 入门(转)
本人工作之初没有使用自动化构建,后来敏捷了,开始使用 Ant - 完全面向过程的定义步骤,不进行依赖管理.再发展到 Maven,面向对象的方式管理工程,有了依赖的管理,JAR 包统一从中央仓库获得,保 ...
- 自动化构建工具gradle安装教程(使用sdkman安装)
gradle是什么?(wiki解释) Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具.它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的 ...
- gulp前端自动化构建工具新手入门篇
很久没有更新博文了. 经过了一次年前吐血的赶项目,终于在年后回血了.趁着有空,新学到了一个前端自动化构建工具-gulp. 现在我们通过这3个问题来学习一下: 1.什么是gulp? 2.为什么要用gul ...
随机推荐
- 基于Caffe的Large Margin Softmax Loss的实现(中)
小喵的唠叨话:前一篇博客,我们做完了L-Softmax的准备工作.而这一章,我们开始进行前馈的研究. 小喵博客: http://miaoerduo.com 博客原文: http://www.miao ...
- scikit-learn随机森林调参小结
在Bagging与随机森林算法原理小结中,我们对随机森林(Random Forest, 以下简称RF)的原理做了总结.本文就从实践的角度对RF做一个总结.重点讲述scikit-learn中RF的调参注 ...
- Net中的常见的关键字
Net中的关键字有很多,我们最常见的就有new.base.this.using.class.struct.abstract.interface.is.as等等.有很多的,在这里就介绍大家常见的,并且有 ...
- [摘录]第三部分 IBM文化(2)
第二十二章 原则性领导 在一个组织程序已经变得不受其来源和内容的约束,而且其编纂出来的组织宗旨已经代替了个人责任的组织之中,你所面临的首要任务,就是要全盘抹掉这个程序本身,以便让整个封闭的系统呼吸新鲜 ...
- 再谈React.js实现原生js拖拽效果
前几天写的那个拖拽,自己留下的疑问...这次在热心博友的提示下又修正了一些小小的bug,也加了拖拽的边缘检测部分...就再聊聊拖拽吧 一.不要直接操作dom元素 react中使用了虚拟dom的概念,目 ...
- 【干货】用大白话聊聊JavaSE — ArrayList 深入剖析和Java基础知识详解(二)
在上一节中,我们简单阐述了Java的一些基础知识,比如多态,接口的实现等. 然后,演示了ArrayList的几个基本方法. ArrayList是一个集合框架,它的底层其实就是一个数组,这一点,官方文档 ...
- 后缀数组(suffix array)详解
写在前面 在字符串处理当中,后缀树和后缀数组都是非常有力的工具. 其中后缀树大家了解得比较多,关于后缀数组则很少见于国内的资料. 其实后缀数组是后缀树的一个非常精巧的替代品,它比后缀树容易编程实现, ...
- Devexpress GridControl.Export
private void mnuExportTable_ItemClick_1(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { u ...
- 一个Java文件至多包含一个公共类
编写一个java源文件时,该源文件又称为编译单元.一个java文件可以包含多个类,但至多包含一个公共类,作为编译时该java文件的公用接口,公共类的名字和源文件的名字要相同,源文件名字的格式为[公共类 ...
- Atitit.软件架构高扩展性and兼容性原理与概论实践attilax总结
Atitit.软件架构高扩展性and兼容性原理与概论实践attilax总结 1. 什么是可扩展的应用程序?1 2. 松耦合(ioc)2 3. 接口的思考 2 4. 单一用途&模块化,小粒度化2 ...