- 浏览: 794078 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (651)
- Java (39)
- Java 初学者小问题 (66)
- 设计模式 (7)
- 项目管理 (3)
- 数据库 (1)
- 算法 (2)
- Java practices (6)
- Effective Java2读书笔记 (78)
- Linux (2)
- programming ruby 读书笔记 (5)
- Core Java Ninth Edition Volume I 读书笔记 (15)
- Pro Git 读书笔记 (12)
- Git (3)
- Maven in Action 读书笔记 (20)
- Web (12)
- 非技术类书籍 (11)
- 电影 (40)
- Web Cache (1)
- jquery (0)
- 历史 (4)
- Dive Into HTML5 读书笔记 (13)
- 三国演义小学毕业考 (79)
- 高效能人士的7个习惯 读书笔记 (12)
- Java Performance 读书笔记 (3)
- Protocol Buffer 学习笔记 (6)
- Mongo DB 学习笔记 (7)
- Morphia 学习笔记 (7)
- Algorithms -- Princeton 学习笔记 (13)
- String研究 (10)
- Hadoop: The Definitive Guide 读书笔记 (3)
- Java与模式读书笔记 (5)
- Date研究 (3)
- The Roman Empire 听课笔记 (4)
- Algorithms -- Standford 学习笔记 (16)
- Core Java Ninth Edition Volume II 读书笔记 (9)
- Thinking in Java 4th Edition 读书笔记 (21)
- Node : Up and Running 学习笔记 (5)
- Eloquent Javascript (8)
- Smashing Node.js 读书笔记 (1)
- Algorithms II -- Standford 学习笔记 (19)
- Algorithm II -- Princeton 学习笔记 (14)
- 网络安全 (2)
- Javascript (4)
- 正则表达式 (1)
- JAVA 7/8 (15)
- JVM (10)
- NodeJS (1)
- 鸟哥的linux私房菜读书笔记 (14)
- Web Service (1)
- The art of programming (9)
- Introduction to Algorithm 读书笔记 (4)
- Java 源码阅读 (0)
- Spring in Action 读书笔记 (2)
- Java Network Programming 读书笔记 (2)
最新评论
-
心存高远:
谢谢作者分享,刚好看到这里不太明白,现在茅塞顿开。不过runt ...
关于 Maven的传递依赖的理解 -
sxlkk:
851228082 写道甚至在某次技术会议现场遇到《Maven ...
关于 Maven的传递依赖的理解 -
851228082:
851228082 写道a----compile----b-- ...
第五章 坐标和依赖 -
851228082:
a----compile----b-----provided- ...
第五章 坐标和依赖 -
851228082:
甚至在某次技术会议现场遇到《Maven in action》的 ...
关于 Maven的传递依赖的理解
1. Web 项目的 POM 中需要显示地指定打包方式为 war ,其默认的 web 资源目录为 src/main/webapp/ ,在该目录下必须包含 WEB-INF/web.xml 。
2. Maven 属性 ${project.groupId} 和 ${project.version} 分别代表了当前 POM 的项目的 groupId 和 version 。
3. javax.servlet.servlet-api 和 javax.servlet.jsp.jsp-api 这两个构建基本上所有 Web 项目都会依赖它们,但它们的依赖范围应该是 provided ,表示它们最终不会被打包到 war 文件中,这是因为几乎所有 Web 容器都会提供这两个类库。
4. 超级 POM 中定义了 fileName 元素(在 project 元素下)的默认值为 ${project.artifactId}-${project.version} ,该元素用来标识项目生成的主构件的名称。但为了在访问 web 项目页面的时候不输入冗长的地址,我们会配置 fileName 元素为项目生成更为简洁的 war 包名。
5. 在 web.xml 中:
<web-app> … <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath://account-persist.xml classpath://account-captcha.xml classpath://account-email.xml classpath://account-service.xml </param-value> </context-param> … </web-app>
ContextLoaderListener 用来为 Web 项目启动 Spring 的 IoC 容器,从而实现 Bean 的注入。 contextConfigLocation 设定了 Spring 配置文件的位置。
6. jetty-maven-plugin 能够周期性地检查 Web 项目内容,发现编译后的文件变化后自动更新到内置的 Jetty Web 容器中。可以在 POM 文件中配置 jetty-maven-plugin :
<plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>7.1.6.v20100715</version> <configuration> <scanIntervalSeconds>10</scanIntervalSeconds> <webAppConfig> <contextPath>/test</contextPath> </webAppConfig> </configuration> </plugin>
scanIntervalSeconds 的默认值为 0 ,也就是不扫描。配置 settings.xml :
<settings> <pluginGroups> <pluginGroup>org.mortbay.jetty</pluginGroup> </pluginGrous> </settings>
这样就可以使用简化的命令行调用:
mvn jetty:run –Djetty.port=9999
端口默认是 8080 。详细资料可以参考
http://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin
7. C argo 是一组帮助用户操作 Web 容器的工具,它能够帮助用户实现自动化部署,而且它几乎支持所有的 Web 容器,如 Tomcat 、 JBoss 、 Jetty 和 Glassfish 等。
8. C argo 支持两种本地部署的模式: standalone 和 existing 。在 standalone 模式中, Cargo 会从 Web 容器的安装目录复制一份配置到用户指定的目录,然后在此基础上部署应用,每次重新构建的时候,这个目录都会被清空,所有配置被重新生成。而在 existing 模式中,用户需要指定现有的 Web 容器配置目录,然后 Cargo 会直接使用这些配置并将应用部署到其对应的位置。
9.
<plugin> <groupId>org.codehaus.cargo</groupId> <artifactId>cargo-maven2-plugin</artifactId> <version>1.0</version> <configuration> <container> <containerId>tomcat6x</containerId> <home>D:\cmd\apache-tomcat-6.0.29</home> </container> <configuration> <type>standalone</type> <home>${project.build.directory}/tomcat6x</home> <properties> <cargo.servlet.port>8081</cargo.servlet.port> </properties> </configuration> </configuration> </plugin>
configuration 元素的 home 子元素表示复制容器配置到什么位置,这里的值 ${project.build.directory} 表示构建输出目录,即 target/ 。 container 元素下的 containerId 表示容器的类型。 Cargo 默认会让 Web 容器监听 8080 端口。要使用 existing 模式只需更改 configuration 元素:
<configuration> <type>existing</type> <home> D:\cmd\apache-tomcat-6.0.29</home> </configuration>
这里 home 子元素表示现有的 Web 容器目录。运行 mvn cargo:start 之后就会在 Tomcat 的 webapps 子目录下看到被部署的 web 项目。
10. 对 于远程部署, container 元素的 type 子元素值必须为 remote (默认值为 installed )。 configuration 元素的 type 子元素值为 runtime ,表示既不使用独立的容器配置,也不使用本地现有的容器配置,而是依赖一个已运行的容器。 Properties 元素用来声明一些容器热部署相关的配置,可以参考: http://cargo.codehaus.org/Maven2+plugin 。
运行 mvn cargo:redeploy 就能重新部署 web 项目了。
发表评论
-
关于 Maven的传递依赖的理解
2012-09-30 09:50 13980今天又回顾了一下 《Maven in Action》的读书笔记 ... -
《Maven in Action》读后感
2012-02-23 23:48 2207今天终于读完了《Maven in Action》一书,真所谓书 ... -
第十八章 Archetype
2012-02-23 23:30 50751. Archetype 是 Maven ... -
第十七章 编写Maven插件
2012-02-23 19:42 44891. 编写 Maven 插件的主要步骤 ... -
第十六章 m2eclipse
2012-02-23 15:44 23751. m2eclipse ( http: ... -
第十五章 生成项目站点
2012-02-21 09:27 22851. Maven 社区提供了大量插件,能让用户 ... -
第十四章 灵活的构建
2012-02-20 16:21 18691. 通过 <propertie ... -
第十三章 版本管理
2012-02-20 15:57 21161. 版本管理( Version Manage ... -
第十一章 使用Hudson进行持续集成
2012-02-09 17:09 23091. 持续集成就是快速 且高频率 ... -
第十章 使用Maven进行测试
2012-02-05 22:17 214021. com.google.code. ... -
第九章 使用Nexus创建私服
2011-12-06 23:17 107951. Nexus 分为开源版和企业版,开源 ... -
第八章 聚合与继承
2011-12-06 09:55 20451. 为了能用一条命令来构建一个实际 ... -
第七章 生命周期和插件
2011-12-05 13:36 23031. Maven 的生命周期就是为了对所有的构 ... -
第六章 仓库
2011-12-03 18:44 24051. Maven 在一个工作站上的某个位置统一 ... -
第五章 坐标和依赖
2011-12-03 15:14 20801. Maven 定义了这样一组规则:世界上任 ... -
第四章 背景案例
2011-12-02 21:20 14181. 主要场景: 1) 用户访问注册页面 2) ... -
第三章 Maven 使用入门
2011-12-01 18:40 25471. 就像Make的Makefile, Ant的build. ... -
第二章 Maven的安装和配置
2011-12-01 10:01 62331. 设置JAVA_HOME, Path中加入%JAVA_H ... -
第一章 Maven 简介
2011-12-01 09:48 22881. Maven 是优秀的构建工 ...
相关推荐
背景案例第5章 坐标和依赖第6章 仓库第7章 生命周期和插件第8章 聚合与继承第9章 使用nexus创建私服第10章 使用maven进行测试第11章 使用hudson进行持续集成第12章 使用maven构建web应用第13章 版本管理第...
"通向架构师的道路(第十九天)使用maven构建Spring工程" 今天,我们将探讨使用Maven构建Spring工程的道路。Maven是一个自动依赖管理工具,可以帮助我们解决jar包依赖问题,并且使我们的项目变得更加简洁和高效。 ...
第12章:编写自定义插件/12.4 使用自定义插件/12.4.1 在新建的Maven项目中引用自定义插件 第12章:编写自定义插件/12.4 使用自定义插件/12.4.2 测试自定义插件 第12章:编写自定义插件/12.4 使用自定义插件/12.4.3 ...
课程介绍 一、课程用到的软件: 1、jdk 1.8 2、eclipse neon 3、tomcat 8 4、jetty 5、MySQL 6、navicat 9+ 二、课程涉及到的技术点 ...2、熟练掌握Maven基础应用 ...第12课 使用Maven管理新闻系统开发-项目完善
本部分文档详细介绍了如何利用Maven工具搭建一个基于Spring框架、SpringMVC和Mybatis的Java Web应用程序的开发环境。以下是对所给文件内容的知识点详尽阐述: 1. 开发环境需求: - 开发工具:Eclipse IDE,一个...
#### 二、Maven 创建 Web 项目 **1. 创建 Maven Web 项目** - 使用命令行或 Eclipse 创建 Maven Web 项目。 - 在命令行中可以使用 `mvn archetype:generate` 命令,结合 webapp archetype 来创建 Web 项目。 - ...
本实例源码是基于《maven实战》一书的第12章内容,涵盖了多个模块,旨在帮助读者深入理解和应用Maven的实际开发场景。 首先,我们关注的是"account-parent"这个文件名。在Maven中,"parent"通常用于定义共用的POM...
在IDE中(如Eclipse)新建Maven项目,可以选择不同的项目类型,如Java应用程序或Web应用程序,并指定项目的`groupId`、`artifactId`和`version`等基本信息。 ##### 2.4 Maven目录结构说明 Maven项目遵循一套标准的...
第十二章:MyBatis框架 MyBatis是一个轻量级的持久层框架,结合SQL语句,使数据库操作更加灵活。本章会介绍MyBatis的使用和配置。 第十三章:Ajax与JSON Ajax(异步JavaScript和XML)允许页面在不刷新的情况下与...
在首次使用 Maven 时,Eclipse 会自动构建 Maven 索引,这个过程可能需要几分钟的时间。也可以手动触发索引构建过程,在 Eclipse 的 Maven 视图中右键点击索引条目,选择 “Rebuild Index”。 #### 八、创建简单的 ...
Maven权威指南 Authors Tim O'Brien (Sonatype, Inc.) , John Casey (Sonatype, Inc.) , Brian Fox (Sonatype, Inc.) , Bruce Snyder () , Jason Van Zyl (Sonatype, Inc.) , Juven Xu () Abstract Maven权威指南...
在本节 "[SSH+Maven+Bootstrap视频教程]_第 四十二 讲" 中,我们将深入探讨如何在Java开发环境中整合Spring、Struts和Hibernate(SSH)框架,并结合Maven进行项目管理,以及利用Bootstrap进行前端美化。这些技术都是...
12. **第十二章:AJAX** - 阐述异步JavaScript和XML技术,如何实现页面无刷新更新。 13. **第十三章:JSON** - JSON是一种轻量级的数据交换格式,讲解如何在Java中解析和生成JSON。 14. **第十四章:RESTful Web...
在《Java Web开发实战宝典》的第12章中,王国辉等作者深入探讨了Java Web应用程序的构建和实现。这一章涵盖了多个关键知识点,包括但不限于Servlet、JSP、MVC模式、数据库交互以及Web应用程序的组织结构。以下是根据...
这对于Web应用特别有用,因为它允许开发者在本地快速测试应用而无需手动部署。 #### 5. `mvn compile` 编译项目中的源代码。这是构建过程中最基础的一步,通常在其他命令之前被执行。 #### 6. `mvn test` 运行...
Maven的项目初始化是构建流程的第一步,它通过`archetype:create`命令基于预设的模板创建项目结构。例如: ``` mvn archetype:create -DgroupId=packageName -DartifactId=projectName ``` 此命令会创建一个具有...
总结而言,本视频教程的第二十一讲涵盖了SSH框架与Maven的整合,Spring AOP的应用以及日志拦截器的实现,这些都是Java Web开发中的重要概念和技术。通过学习这些内容,开发者能够更高效地管理项目,增强代码的可维护...
在本节 "[SSH+Maven+Bootstrap视频教程]_第 五十二 讲" 中,我们将深入探讨如何集成Spring、Struts2和Hibernate(SSH)框架,并结合Maven项目管理和Bootstrap前端框架,来构建高效、现代化的企业级Java Web应用程序...