关键要看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.cmower</groupId> <artifactId>Maven4Web</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>Maven4Web Maven Webapp</name> <url>http://maven.apache.org</url> <developers> <developer> <id>cmower</id> <name>maweiqing</name> </developer> </developers> <properties> <javax.servlet.version>3.1.0</javax.servlet.version> <spring.version>3.2.8.RELEASE</spring.version> <spring.security.version>3.2.3.RELEASE</spring.security.version> <jstl.version>1.2</jstl.version> <mysql.connector.version>5.1.30</mysql.connector.version> <jdk.version>1.7</jdk.version> </properties> <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>${javax.servlet.version}</version> <scope>provider</scope> </dependency> <!-- Spring 3 dependencies --> <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-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <!-- jstl for jsp page --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>${jstl.version}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/log4j/log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> </dependency> <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.25</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging --> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.1</version> </dependency> </dependencies> <build> <finalName>Maven4Web</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>${jdk.version}</source> <target>${jdk.version}</target> </configuration> </plugin> </plugins> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build> </project>
运行项目:
pom的英文全称应该是Project Object Model(项目对象模型)。pom.xml,一个将项目编译、测试、部署等步骤联系在一起加以自动化的XML,通常放置在项目的根目录下。它是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> </project>
其中的modelVersion是4.0.0,这是当前仅有的,可以被Maven2&3同时支持的POM版本,它是必须的。
pom.xml文件的第二部分通常是:
<groupId>com.cmower</groupId> <artifactId>Maven4Web</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>Maven4Web Maven Webapp</name> <url>http://maven.apache.org</url> <developers> <developer> <id>cmower</id> <name>maweiqing</name> </developer> </developers>
groupId : 组织标识,本书的所有源码均为com.cmower。
artifactId : 项目名称,本例子为Maven4Web。
packaging : 打包的格式,Java Web项目为war包。
version : 版本号,通常以0.0.1为起始版本号。
name:项目的名称, Maven产生的文档用
url:项目主页的URL, Maven产生的文档用
developers:项目的开发者,可以有多个。
pom.xml文件的第三部分通常是:
<properties>
<spring.version>3.2.8.RELEASE</spring.version>
<jdk.version>1.7</jdk.version>
</properties>
用来定义一些可能需要变动又经常使用的版本号变量,比如说Spring的版本号定义为3.2.8.RELEASE。
pom.xml文件的第四部分通常是:
<dependencies>
<!-- Spring 3 dependencies -->
<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>
</dependencies>
元素描述了项目相关的所有依赖, 这些依赖组成了项目构建过程中的一个个环节。每次更改pom.xml文件保存后,新增或者改动的依赖将会自动从Maven 定义的仓库中(比如阿里云镜像库)下载到本地仓库。
有了Maven的帮助,新增项目依赖的JAR包实在是太方便了。比如说我们使用Fastjson
来进行JSON解析和生成,那么要添加Fastjson的JAR包到项目的构建路径中,该怎么做呢?
第一步,进入MavenRepository网站(地址为 http://mvnrepository.com),在 search 文本域中输入com.alibaba(groupId)或者 fastjson(artifactId),然后点击「search」按钮,结果如下:
第二步,点击Fastjson的链接进入到Fastjson的主页,可以看到所有版本的Fastjson,选择一个使用率最高的,目前是1.2.41版本。使用率高在一定程度上表明这个版本的JAR包最稳定,它已经得到了广大程序员的认可。
第三步,在1.2.41版本的Fastjson页,只需要左键轻轻地在 「Maven」选项卡内点一下,就已经把Fastjson的依赖信息复制到粘贴板了,不再需要「Ctrl+C」哦——非常的人性化。
第四步,将Fastjson的依赖信息粘贴到pom.xml文件的<dependencies>节点下,然后按下快捷键「Ctrl+S」保存。紧接着,依次展开Maven4Web → Java Resources → Libraries → Maven Dependencies 节点,你可以看到 fastjson-1.2.41.jar 已经悄悄地添加进来了。
另外,元素主要用于解决版本冲突问题。上例中在计算spring-core的依赖传递时, 排除commons-logging的依赖构件集。
pom.xml文件的第五部分通常是:
<build> <finalName>Maven4Web</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>${jdk.version}</source> <target>${jdk.version}</target> </configuration> </plugin> </plugins> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build>
元素用于构建项目需要的信息。
元素用于指定该项目使用的插件列表。比如本例中指定了编译源代码的“maven-compiler-plugin”插件。
元素描述了项目相关的所有资源路径列表。比如本例中指定的xml文件,这些资源被包含在最终的打包文件里。