看了一段时间网上的教程,也会用了一些功能,于是尝试把Maven应用于我自己的Web项目中。
其实把Maven用在web项目中非常简单,Maven本来就有这样的功能(site)。
新建Maven项目,只需设置pom.xml中的packaging为war,增加相关的依赖,这里有个sample
<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>cn.noside</groupId> <artifactId>nportal</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <description> </description> <properties> <spring.version>3.0.5.RELEASE</spring.version> <log4j.version>1.2.16</log4j.version> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> <scope>test</scope> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> <exclusions> <exclusion> <groupId>quartz</groupId> <artifactId>quartz</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.0.4</version> <exclusions> <exclusion> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.3</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.13</version> </dependency> </dependencies> </project>
完成了pom.xml,需要在/{project_home}/src/main/webapp里面增加目录"WEB-INF",再在"WEB-INF"里面增加web.xml文件。到这里就完成了构建工作。
构建只需简单右键项目->Run as->Maven package,生成的war包回存放于target文件夹中。
相比于Ant,Maven实在是太简单了,因为Maven不需要自己编写说明项目源码放在什么地方,资源文件放在哪里,编译后放在哪里,Maven已经帮我们这样做了,唯一的代价就是需要依照Maven规定的项目结构(否则需要增加插件,指明源码与目标路径,这样的话相比Ant貌似没有优势)。
一连三篇文章,简述了我在一般项目中如何使用Maven,但是Maven的学习不仅仅这么少,Maven作为一个项目管理工具,不仅仅是依赖管理与build项目而已。下面列举一些Maven需要学习的重点
1.Maven配置,包括settings的配置(大陆居然访问不到Maven主仓库……settings配置就非常重要了),包括如何建立私有仓库,项目团队如何使用仓库。
2.Maven生命周期
3.Maven管理项目模块,有时我们把一个项目分成core、web、dao等几部分
4.Maven插件
5.Maven作为持续集成管理
……