`

使用maven构建web项目实例

阅读更多
用maven构建web项目,首先要知道标准的目录结构,和一般的maven项目相同,源文件存放在src/main/java中,配置文件存在src/main/resources目录下。测试的代码放在src/test/java下,
对应的资源文件放在src/test/resources目录下。除了这些目录外。web项目还有一个src/main/webapp目录,该目录必须存在,且必须有一个web.xml文件,用于对整个web项目的配置。
如maven-web-demo这个项目实例。该项目的目录结构如下图所示:


[size=medium]为了web项目的部署,该项目的打包方式必须显示声明为war方式,因为maven默认的打包方式为jar。
还有pom文件中必须引入servlet,jsp的相关jar包,scope设置为provided,表示它们最终不会打包到war项目中。因为几乎所有的web容器都提供有javax.servlet相关的jar包,如果war包中重复出现
就会出现版本冲突的错误。




为了测试web项目,可以使用jetty插件,需要在pom文件中给出相应的配置。[/size
]<plugin>
  			<groupId>org.mortbay.jetty</groupId>
  			<artifactId>maven-jetty-plugin</artifactId>
  			<version>6.1.26</version>
  			<configuration>
  			<scanIntervalSeconds>10</scanIntervalSeconds>
  			<webAppConfig>
  			<contextPath>/test</contextPath>  <!-- http://host:port/test/ -->
  			</webAppConfig>
  			</configuration>
  			
  		</plugin>

contextPath用于配置url的路径,该实例访问的url为http://host:port/test/.
为了能在命令行上启动jetty,并部署web项目,必须配置maven的settings.xml。添加如下语句即可。
<pluginGroup>org.mortbay.jetty</pluginGroup>

在命令行下输入mvn jetty:run启动并部署web项目。然后在浏览器中即可访问。


整个maven配置文件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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.juvenxu.mvnbook.account</groupId>
	<artifactId>maven-web-demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>
	<build>
		<plugins>
			<plugin>
				<groupId>org.mortbay.jetty</groupId>
				<artifactId>maven-jetty-plugin</artifactId>
				<version>6.1.26</version>
				<configuration>
					<scanIntervalSeconds>10</scanIntervalSeconds>
					<webAppConfig>
						<contextPath>/test</contextPath>  <!-- http://host:port/test/ -->
					</webAppConfig>
				</configuration>

			</plugin>
		</plugins>
	</build>
	<dependencies>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.4</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jsp-api </artifactId>
			<version>2.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>  org.springframework </groupId>
			<artifactId>spring-web</artifactId>
			<version>2.5.6</version>
		</dependency>

	</dependencies>
</project>


除了用jetty测试,还可以使用cargo进行自动化部署,如部署到本地的web容器中,主要是在pom文件中进行配置。内容如下:
<plugin>
				<groupId>org.codehaus.cargo</groupId>
				<artifactId>cargo-maven2-plugin</artifactId>
				<version>1.0</version>
				<configuration>
					<container>
						<containerId>Tomcat6x</containerId>
						<home>D:\software installs\Tomcat6.0</home>
					</container>
					<configuration>
						<type>standalone</type>
						<home>${project.build.directory}/Tomcat6x</home>
						<properties>
						<cargo.servlet.port>8080</cargo.servlet.port>
						</properties>
					</configuration>
				</configuration>
			</plugin>
  • 大小: 11.1 KB
分享到:
评论
2 楼 霜花似雪 2016-11-11  
博主可以分享一下源码吗?
1 楼 xunke515 2013-02-24  
"web项目还有一个src/main/webapp目录,该目录必须存在,且必须有一个web.xml文件"
但是今天我看到一个开源项目.项目的webapp下还有其他的文件夹,比如说装js和image的文件夹.
看样子,webapp目录就只是一个web项目的根目录而已.

相关推荐

    使用Maven构建JavaWeb项目实例

    使用Maven构建JavaWeb项目实例

    Maven 构建SpringMVC项目学习笔记

    Maven 构建SpringMVC项目学习笔记 一、背景介绍 二、构建工程 2.1、用maven插件构建项目框架 2.2、完善项目 2.3、将工程变成web工程 三、工程SpringMVC配置 3.1 赋予工程的springmvc特性 3.2、添加Maven依赖 四、...

    maven window下安装包

    第13章:使用Maven生成项目原型/13.1 Maven项目原型/13.1.4 命令行生成的web项目原型 第13章:使用Maven生成项目原型/13.2 编写自己的项目原型/13.2.1 自定义项目原型结构组成 第13章:使用Maven生成项目原型/13.2 ...

    Spring构建微服务实例(Spring、Spring Boot和Spring Cloud),Maven项目

    通过一个使用Spring、Spring Boot和Spring Cloud的小例子来说明如何构建微服务系统。 具体请看附件文件中的:readme.txt 和 [译]Spring构建微服务.png 访问地址:http://localhost:1111/ 运行顺序:...

    maven构建spring struts2 ibatis velocity小实例

    自己写的一个maven管理的spring+struts2+ibatis+velocity实例。项目已经打包好了,直接导入部署即可。

    springmvc+velocity+ Rest Services(xml,json)实例

    该项目由maven构建的web项目,实例简单,无数据库连接操作

    gradle多模块开发项目实例

    gradle的多模块或项目开发一定不会比maven差,在我看来!大的项目分成多个模块来开发是常事.下文就介绍一下怎么用gradle开发多模块项目.对于gradle,在Eclipse和IDEA开者之间,毫无疑问选择IDEA作为IDE. testweb是一个...

    Grails与Maven集成

    本文通过实例讲述Grails与Maven集成的各种方法,使读者可以学会使用Maven对Grails项目进行构建。Grails简介:Grails是一个开源的Web开发框架,它采用动态语言Groovy进行开发,并且可以和用Java开发的项目进行集成。...

    Java项目开源源码.docx

    Apache Maven项目构建工具 v3.8.7 HertzBeat 赫兹跳动 v1.2.3 Jpom项目监控软件 v2.10.6 kkFileView在线预览 v4.1.0 SMQTTX v2.0.6 SMQTTX v1.1.6 wenku 类似百度文库的实例 v1.0 ofdrw读写库 v1.20.2 XXL-API 易用...

    contact-form-app:Java Contact 表单 REST API 在 Spring Framework、JUnit、Maven、Hibernate 和 MySQL 上运行

    使用 Maven 构建并运行本地 Jetty Web 服务器 项目在 Apache Maven 上运行 要启动本地服务器,请输入mvn compile package jetty:run并导航到 单元测试 输入mvn test运行单元测试 截图 联系表格应用主页 添加新车 ...

    people-restful:使用Spring框架的REST服务示例项目

    将让人烦恼的Web应用程序添加到VMware vFabric tc Server实例启动服务器使用其他应用程序服务器git clone 使用maven命令构建war文件将生成的war文件部署到其他Web应用程序服务器,例如Tomcat 启动服务器可以通过...

    wro4j 1.7.2 发布,Web 资源优化工具

    wro4j 1.7.2 为 maven 插件增加多个上下文的文件夹,linter goals 支持增量构建,更新了 jruby、emberjs 等。 wro4j是一个Web资源优化工具。众所周知,到服务器加载一个大的文件比加载两个小的文件快,因为会...

    demo-springboot-vertx3:嵌入vertx3的多模块springboot应用程序的小poc

    “构建”使用springboot maven插件构建一个胖罐,该胖罐包含后端和Web依赖项要求JDK 1.8 行家 3.2.x如何构建和使用它从父文件夹 mvn clean package此步骤还执行 nodejs 项目的完整构建,并将生成的文件添加到类路径...

    java-samples:Java中框架使用的一些示例

    Java实例介绍所有这些项目都是使用Maven3构建的。记录器和模式 :使用记录 :使用异常的示例固定装置:TODO 建造者:TODO测试框架 :使用Assertj的示例(测试框架) :使用Mockito的示例(测试框架) :使用OpenPojo...

    Maven+jersey快速构建RESTfulWebservice集成mongodb

    Jersey是JAX-RS(JSR311)开源参考实现用于构建RESTfulWebservice。此外Jersey还提供一些额外的API和扩展机制,所以开发人员能够按照自己的需要对Jersey进行扩展理论的东西在这里我就不多说了!这个实例是实现了REST的...

    hdapi:适用于AWS CodeStar Java Spring Web服务hdapi的GitHub存储库

    这是什么该示例包括: README.md-此文件appspec.yml-将Web服务部署到EC2时,AWS CodeDeploy使用此文件buildspec.yml-AWS CodeBuild使用此文件来构建Web服务pom.xml-该文件是Web服务的Maven项目对象模型src / main-此...

    GraphQL21:适用于AWS CodeStar Java Spring Web服务graphql2的GitHub存储库

    buildspec.yml-AWS CodeBuild使用此文件来构建Web服务 pom.xml-该文件是Web服务的Maven项目对象模型 src / main-此目录包含您的Java服务源文件 src / test-此目录包含您的Java服务单元测试文件 scripts /-此目录包含...

Global site tag (gtag.js) - Google Analytics