看了一段时间网上的教程,也会用了一些功能,于是尝试把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作为持续集成管理
……