第一步:建立项目
主要工作是选择一个目录,用命令行进入当前目录,想好自己的包名、项目名、项目类型,我们就以建立web项目为例
在命令行下输入:(maven会问你是否确认,输入Y就行)
其中DarchetypeArtifactId 参数表示建立项目的类型,不写就是最简单的java项目,还有其他类型。
DgroupId参数表示包名。
DartifactId项目名称。
Dversion项目版本。
DartifactId取值:
* maven-archetype-j2ee-simple
* maven-archetype-mojo
* maven-archetype-portlet
* maven-archetype-profiles (currently under development)
* maven-archetype-quickstart
* maven-archetype-simple (currently under development)
* maven-archetype-site
* maven-archetype-site-simple
* maven-archetype-webapp
这样我们的项目就建立完成了,但是大家进入目录会看到,跟Maven的标准目录结构差距还是很大的,但是这个Maven指令很SB的没给我们把目录建全,我们鄙视它一下,要自己去建立我们需要的目录。
基本上一个Web项目的标准目录如下:
* src/main/resources
* src/test/java
* src/test/resources
* src/main/webapp
* src/main/config(如果你的properties文件想独立出来)
目录的建立方式很多,给个命令行的指令,方便一下
至此我们用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.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<packaging>war</packaging>
<version>1.0.0</version>
<name>my-app Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>my-app</finalName>
</build>
</project>
剩下的工作就是添加maven仓库,添加依赖Jar包,配置各个Maven插件的版本,这点很重要,插件版本如果不配置,很可能造成插件升级后不兼容你当前的项目,下面简单介绍一下。
首先声明一些常量:
<properties> <!-- 主要依赖库的版本定义(这里只是举例最新版自己去仓库找) --> <spring.version>3.0.4.RELEASE</spring.version> <hibernate.version>3.5.5-Final</hibernate.version> <!-- Plugin的属性定义 --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties>
然后声明我们可以去访问的仓库:
<repositories> <repository> <id>offical</id> <name>Maven Official Repository</name> <url>http://repo1.maven.org/maven2</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>jboss</id> <name>Jboss Repository</name> <url>http://repository.jboss.org/nexus/content/groups/public-jboss/</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>java.net</id> <name>Java.net Repository</name> <url>http://download.java.net/maven/2/</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
再然后声明依赖的Jar包
<dependencies>
<!-- spring begin -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- spring aop -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>${cglib.version}</version>
</dependency>
<!-- spring end -->
<!-- database access begin -->
<!-- hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>${hibernate.version}</version>
</dependency>
<!-- newest version in jboss repository -->
<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<version>${javassist.version}</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>${oracle.version}</version>
</dependency>
<!-- spring orm -->
<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>
</dependencies>
最后设置插件
<build>
<finalName>my-webapp</finalName>
<!-- 编译输出目录 -->
<outputDirectory>
${basedir}/src/main/webapp/WEB-INF/classes
</outputDirectory>
<plugins>
<!-- compiler插件, 设定JDK版本 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
<!-- test插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.6</version>
<configuration>
<skip>true</skip>
<testFailureIgnore>true</testFailureIgnore>
<includes>
<include>**/*Test.java</include>
</includes>
</configuration>
</plugin>
<!-- cobertura插件 -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.4</version>
</plugin>
<!-- war插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1</version>
<configuration>
<warName>${project.artifactId}</warName>
</configuration>
</plugin>
<!-- resource插件, 设定编码 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<!-- jar插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
</plugin>
<!-- clean插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
</plugin>
<!-- install插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.3.1</version>
</plugin>
<!-- deploy插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.5</version>
</plugin>
<!-- eclipse插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<sourceExcludes>
<sourceExclude>**/.svn/</sourceExclude>
</sourceExcludes>
<downloadSources>true</downloadSources>
</configuration>
</plugin>
<!-- 依赖jar包插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
<configuration>
<outputDirectory>
${basedir}/src/main/webapp/WEB-INF/lib
</outputDirectory>
</configuration>
</plugin>
</plugins>
</build>
还有一些其他的设置,这里就不讲了,那个更麻烦,我还没研究明白,呵呵。
剩下的工作就简单了,我们的项目架子已经建好,现在就是要把建好的项目在eclipse下进行开发,所以我们也要做最重要的一步:
其中DdownloadSources是是否下载源代码
Dwtpversion是支持的Web版本
完成这个之后我们就可以在eclipse下导入该项目了。
每次要刷新项目的话执行下面的批处理
@echo off
set curdir=%~dp0
set partition=%curdir:~0,1%
echo 工程目录:%curdir%
%partition%:
cd %curdir%
echo 清理工作
call mvn clean eclipse:clean
echo 构建eclipse工程环境,下载JAR源代码,将项目订制为web项目
call mvn eclipse:eclipse -DdownloadSources=true -Dwtpversion=2.0
echo 生成工程依赖JAR包,放到WEB-INF/lib
echo 删除 %curdir%src\main\webapp\WEB-INF\lib\ 下面的jar包
cd %curdir%src\main\webapp\WEB-INF\lib\
del *.jar
cd %curdir%
call mvn dependency:copy-dependencies
echo MAVEN工程构建完成
pause
本文介绍如何使用Maven快速搭建Web项目,包括项目初始化、目录结构配置、依赖管理及插件配置等关键步骤。

被折叠的 条评论
为什么被折叠?



