- 浏览: 691872 次
- 性别:
- 来自: 北京
博客专栏
-
读金庸故事,品程序人生
浏览量:47248
文章分类
最新评论
-
hty881008:
LZ,你的json返回是怎么出来的,我的怎么是No messa ...
使用CXF暴露您的REST服务 -
jxFY:
赞
Apache的对象池化工具commons-pool -
wangyudong:
新版本的Wisdom RESTClient地址https:// ...
使用CXF暴露您的REST服务 -
wangyudong:
由CXF实现的微服务需要有比较好的工具去测试RESTful A ...
使用CXF暴露您的REST服务 -
spring_springdata:
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
Maven3实战笔记01环境配置与使用入门
1. 构建Web应用介绍
Java Web项目是我们最熟悉的项目类型了,一个Web项目的结构大家也是烂熟于心。之前咱们使用Maven构建的都是JavaSE类型的项目,虽然说Java Web项目可以借助类似于Eclipse这种IDE可以很好的帮助我们打包生成war,而且IDE可以集成Web服务器,联调也不麻烦。那如果说我在构建Web项目的同时又想跑一下全部的单元测试用例呢,又比如我的Web项目引用了很多已有的Maven私服上的jar包呢(比如就是Struts+Spring+Hibernate),再比如,我想看看此次Web项目构建过程中具体的报告信息等等,还是用Maven管理Java Web项目更为科学吧~当然了,笔者在这里绝不是让大家将所有的项目都迁移到Maven模式管理下,绝无此意,而是觉得在JavaSE上能体现Maven的优点同样适用于Java Web项目,虽然这种迁移会让您稍微改变一下以往的开发模式,但是个人认为从长期角度讲,对项目,对企业,对客户还是值得的。
2. 使用Maven构建Java Web项目
Java Web项目和别的项目不一样的地方主要在于2点,第一就是pom.xml文件中的构件类型,第二就是web资源(包括页面、web.xml、图片资源文件)。
在pom.xml文件中需要指定打包类型为war。pom.xml文件内容如下
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>MavenAccount-web</groupId> <artifactId>MavenAccount-web</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>MavenAccount-web</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
之后就是放置web文件的位置,Maven约定web文件放到src/main/webapp下面,用过MyEclipse的朋友们可能知道,开发web项目根目录下除了有src目录,都有一个叫做WebRoot的目录用于存储web资源的。
webapp下面就是那个放置页面资源的文件夹。
下面就是src/main/java下一个简单的JavaBean的代码。
package MavenAccountweb; /** * Hello world! */ public class App { public String sayWebHello(String str) { System.out.println(str); return "hello:" + str; } }
主页面入口index.jsp内容如下
<%@ page language="java" import="MavenAccountweb.App" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Hello Web</title> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <% App app = new App(); String newString = app.sayWebHello("liuyan"); %> [<%=newString%>] <br> </body> </html>
它引用了业务JavaBean输出一段内容。
在项目根目录下运行maven脚本
mvn clean package
之后看到目标输出目录出现如下内容
其中MavenAccount-web-0.0.1-SNAPSHOT.war,我们将其部署到本机的tomcat上运行。看到页面效果如下
Ok,证明你的Java Web项目构建成功。因为Java Web具体技术研发不在本次讨论的重点范围内,因此仅仅给出一个十分微小的Web项目。需要注意的是大家平时调试的时候完全可以使用IDE集成Web应用服务器,这是没有问题的,笔者看有些地方介绍了Maven插件——jetty-maven-plugin进行嵌入式的web调试,其实笔者认为大可不必,有IDE的时候其实使用此Maven插件感觉并不比使用IDE集成的Web服务器方便多少,而且各种Web服务器实现JSP、Servlet、JSF规范是不一样的,Tomcat自己的实现与Jetty就有很大差异,没准一个JSF项目在Tomcat下面运行得好好的,放到了Jetty下面就出现了不可预知的异常。所以还是是用IDE集成的Web服务器查看问题更方便一些。当然此处仅仅是笔者经验的一家之言,不同项目因情况而异。
在Web项目中依赖Spring、Struts等等第三方的包,和JavaSE的依赖配置一样。此处不必详说。而因为笔者调试阶段是使用IDE工具集成的Web服务器——Tomcat,所以不必在pom.xml中显示声明JSP-impl、Servlet-impl等等Java Web规范的依赖项,Tomcat自身就是一个Java Web容器,自己有相关jar实现了此规范。(至于JavaEE规范详细请查看笔者Blog: http://suhuanzheng7784877.iteye.com/blog/908380)
3. 总结
Web项目是我们搞Java研发人员中接触最多的,使用Maven配合MyEclipse这种IDE能让Web项目构建、升级第三方包、依赖第三方包更加简单、方便。也节省了很多查找Web依赖的时间。尤其是SSH项目,有时使用Spring需要依赖其他很多jar包,Maven会为您管理、下载这种间接依赖的。从此我们的Web开发显得构建简单了。当然可以参考其他文章看看使用Maven插件进行web项目热部署
http://www.huomo.cn/developer/article-196fd.html
http://article.yeeyan.org/view/jdonee/19631?from_com
此处就不细细道来了。
评论
http://www.docin.com/p-219804521.html
是关于hudson的介绍,持续集成。
/ts.ires.admin
/ts.ires.application
/ts.ires.collection
/ts.ires.core
/ts.ires.metadata
/ts.ires.monitor
/ts.ires.service
/ts.ires.share
/ts.ires.web
ts.ires.web工程的pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.starit.resource</groupId> <artifactId>resource-parent</artifactId> <version>1.0.0-SNAPSHOT</version> </parent> <packaging>war</packaging> <artifactId>ts.ires.web</artifactId> <name>starit resource web</name> <dependencies> <dependency> <groupId>com.starit.resource</groupId> <artifactId>ts.ires.core</artifactId> <version>${parent.version}</version> </dependency> <dependency> <groupId>com.starit.resource</groupId> <artifactId>ts.ires.admin</artifactId> <version>${parent.version}</version> </dependency> <dependency> <groupId>com.starit.resource</groupId> <artifactId>ts.ires.application</artifactId> <version>${parent.version}</version> </dependency> <dependency> <groupId>com.starit.resource</groupId> <artifactId>ts.ires.collection</artifactId> <version>${parent.version}</version> </dependency> <dependency> <groupId>com.starit.resource</groupId> <artifactId>ts.ires.metadata</artifactId> <version>${parent.version}</version> </dependency> <dependency> <groupId>com.starit.resource</groupId> <artifactId>ts.ires.monitor</artifactId> <version>${parent.version}</version> </dependency> <dependency> <groupId>com.starit.resource</groupId> <artifactId>ts.ires.service</artifactId> <version>${parent.version}</version> </dependency> <dependency> <groupId>com.starit.resource</groupId> <artifactId>ts.ires.share</artifactId> <version>${parent.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <configuration> <server>myserver</server> <path>/resource</path> </configuration> </plugin> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>7.2.2.v20101205</version> <configuration> <webAppConfig> <contextPath>/resource</contextPath> </webAppConfig> <!--<scanIntervalSeconds>3</scanIntervalSeconds>--> <connectors> <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> <port>8080</port> <maxIdleTime>30000</maxIdleTime> </connector> </connectors> <webAppSourceDirectory>src/main/webapp</webAppSourceDirectory> </configuration> </plugin> </plugins> </build> </project>
发表评论
-
Web前端优化
2014-04-08 09:35 3521Web前端优化总结 刘岩 suhua ... -
使用CXF暴露您的REST服务
2011-06-15 14:32 180051. 前言 现在互联网Open API流行,将您的Web应 ... -
JavaEE5实战笔记04JSF的一些补充
2011-05-31 09:39 12381. 前言 这个是对于以前JSF学习的一点点补充 ... -
JSF与Struts2的瑜亮之争
2011-05-12 15:36 9738刘岩 Email:suhuanzheng778487 ... -
JavaEE5学习笔记14-JSF集成Facelets使用经验总结
2011-03-24 12:06 30821. Facelets就像tiles、siteme ... -
JavaEE5学习笔记13-JSF集成AJAX使用经验总结
2011-03-24 11:36 5260JSF也支持AJAX,ajax4jsf是专门为JSF提供的AJ ... -
JavaEE5学习笔记07-Web层与EJB集成总结(5):异常问题以及解决
2011-02-23 17:00 3443在Web系统和EJB整合的过程中,比较麻烦的经历就是打包、部署 ... -
JavaEE5学习笔记07-Web层与EJB集成总结(4):Struts2与EJB集成
2011-02-23 16:56 1434Struts2+EJB+JBoss的集成Demo 因为St ... -
JavaEE5学习笔记07-Web层与EJB集成总结(3):JSF与EJB集成
2011-02-23 16:55 1390JSF+EJB+JBoss集成Demo 上面提到过JSF也 ... -
JavaEE5学习笔记07-Web层与EJB集成总结(2):servlet与EJB集成结果展示
2011-02-23 16:51 1221之后在写2个jsp页面 insertUserFormServ ... -
JavaEE5学习笔记07-Web层与EJB集成总结(1):servlet与EJB集成
2011-02-23 16:48 17261. 集成时的感受 单丝不成线,孤木不成林。尽管 ... -
Struts2+Web常使用的功能经验笔记第1季--4
2011-01-21 10:15 12321. <meta http-equiv ... -
Struts2+Web常使用的功能经验笔记第1季--3
2011-01-21 10:14 13761. Struts2的拦截器 它一般作为S ... -
Struts2+Web常使用的功能经验笔记第1季--2
2011-01-21 10:13 13641. Struts2的JSON插件,让Str ... -
Struts2+Web常使用的功能经验笔记第1季--1
2011-01-21 10:11 23091. 前言 Apache的Struts2已经 ... -
JSF+Spring+JPA(Hibernate实现)的环境搭建(4)
2010-12-30 15:13 2035配置Spring文件applicationContext.xm ... -
修改fck源代码(2)
2010-12-30 14:35 1114showImage.jsp代码如下: <% ... -
修改fck源代码(1)
2010-12-30 14:33 1511OK,到此为止,FCK基本集成到您的web系统当中。但是目前出 ... -
FCKEditor使用、修改源代码经验总结
2010-12-30 14:23 3617FCKEditor使用、修改源代码经验总结 作者:刘岩 E ...
相关推荐
Maven3实战笔记(整合)
Maven3实战笔记 Maven3实战笔记 Maven3实战笔记 Maven3实战笔记
Maven3实战笔记(全) 从安装配置,到仓库依赖,到集成测试,到插件管理,到构建web 作者风趣幽默的介绍了maven3的使用 强烈推荐
Maven3实战笔记06——聚合的介绍。
Maven3实战笔记,介绍maven构建项目的步骤以及相关内容
Maven3实战笔记08——Maven反应堆。
Maven3实战笔记07——继承的介绍。
Maven3实战笔记10——使用Maven进行测试。
Maven3实战笔记04——Maven的生命周期和插件。
Maven3实战笔记——03Maven仓库。
Maven3实战笔记
课程目录: Maven3_01_maven概览 Maven3_02_maven安装的注意事项 Maven3_03_在eclipse中建立简单的项目 Maven3_04_maven的依赖特性 Maven3_05_maven的聚合和继承 Maven3_06_复习maven的基本...Maven3实战笔记 Maven配置
Maven3实战笔记05——仓库依赖解析与插件解析。
Maven3实战笔记02——项目需求和模块分析。
Maven3实战
maven学习笔记maven学习笔记maven学习笔记
从网上找到的Maven3学习资料,欢迎访问博客: http://blog.csdn.net/jolingogo