maven pom.xml mysql_maven pom.xml配置文件详解

1

2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

3

4 4.0.0

5

6 com.freesoft.mvn-webapp

7 mvnwebapp

8

9 war

10

11 1.0-SNAPSHOT

12 mvnwebapp Maven Webapp

13 http://maven.apache.org

14

15

16

17

18

19

20 junit

21 junit

22 4.11

23 test

24

25

26

27

28

29

30 mvnwebapp

31

32

33

34 org.apache.tomcat.maven

35 tomcat7-maven-plugin

36 2.1

37

38 http://localhost:8080/manager/html

39 tomcat_localtest

40

41

42

43

44

45

46

47 2.3.15

48 5.1.29

49 4.3.1.Final

50

51

67d0865f17d9be527254bf8a8ff6c5b4.gif

下面分段讲解。

1. 基本信息

modelVersion

Maven模块版本,目前我们一般都取值4.0.0

groupId

整个系统的名称。

artifactId

子模块名称。

packaging

打包类型,可取值:jar,war等等,这个配置用于package的phase,具体可以参见package运行的时候启动的plugin,后面有机会我们会讲述如何配置打包的插件。

2. dependencies

依赖关系。实际上pom之间存在好三种关系:继承、依赖、聚合。我们先讲依赖,这也是最重要的关系。

groupId

依赖项的groupId

artifactId

依赖项的artifactId

version

依赖项的版本

scope

依赖项的适用范围:

compile,缺省值,适用于所有阶段,会随着项目一起发布。

provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。

runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。

test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。

system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

之前例子里的junit就只用在了test中。

exclusions

排除项目中的依赖冲突时使用。

2.1 关于排除依赖冲突

我们可能经常会遇到这样一个问题:我们的项目有两个依赖项:A & B,而且A和B同时依赖了C,但不是同一个版本。那么我们怎么办呢?

2.1.1 添加检查插件

67d0865f17d9be527254bf8a8ff6c5b4.gif

1

2

3

4 org.apache.maven.plugins

5 maven-project-info-reports-plugin

6

7

8

67d0865f17d9be527254bf8a8ff6c5b4.gif

然后运行:mvn project-info-reports:dependencies,来查看依赖项报告。

2.1.2 去除依赖项

如果我们需要在某个dependency中去除某个依赖项,直接这样即可:

67d0865f17d9be527254bf8a8ff6c5b4.gif

1

2

3 org.apache.struts

4 struts2-core

5 ${struts.version}

6

7

8 org.freemarker

9 freemarker

10

11

12

67d0865f17d9be527254bf8a8ff6c5b4.gif

3. 继承

我的repository下面有个例子就直接拿来用了:

67d0865f17d9be527254bf8a8ff6c5b4.gif

1 4.0.0

2

3 com.thoughtworks.xstream

4 xstream-parent

5 1.4.3

6

7 xstream

8 jar

9 XStream Core

67d0865f17d9be527254bf8a8ff6c5b4.gif

其中的parent表示父pom是com.thoughtworks.xstream的xstream-parent的1.4.3版本。继承关系比较简单,这里不做过多介绍。

4. 聚合

我们可以通过一个大的项目来整合各个小的模块:

1

2 my-app

3

5. 属性

属性表述类似于EL表达式,ANT中也同样有,所以我们的properties字段可以这样使用:

1

2

3 mysql

4 mysql-connector-java

5 ${mysql.version}

6

6. 构建

6.1 plugin

Plugin的配置如下:

67d0865f17d9be527254bf8a8ff6c5b4.gif

1

2

3

4 org.apache.tomcat.maven

5 tomcat7-maven-plugin

6 2.1

7

8 http://localhost:8080/manager/html

9 tomcat_localtest

10

11

12

13

67d0865f17d9be527254bf8a8ff6c5b4.gif

我们可以看到同样要哟偶groupId、artifactId、version还有一些配置参数。

6.2 resource

指定你在Build时需要的资源文件:

67d0865f17d9be527254bf8a8ff6c5b4.gif

1

2

3 WEB-INF/resource

4

5 false

6 ${basedir}/src/test/resources

7

8 include.xml

9

10

11 exclude.xml

12

13

14

67d0865f17d9be527254bf8a8ff6c5b4.gif

Maven pom.xml文件详解

Maven pom.xml文件详解 一.简介 POM全称是Project Object Model,即项目对象模型. pom.xml是maven的项目描述文件,它类似与antx的project.xml ...

Maven的pom.xml配置文件详解

Maven简述 Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具.由于 Mav ...

(转)Maven pom.xml 配置详解

背景:maven一直感觉既熟悉又陌生,归根结底还是自己不太熟. 1 什么是pom? pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者 ...

Maven(四-2) Maven pom.xml 配置详解

转载于:http://niuzhenxin.iteye.com/blog/2042102 什么是pom?    pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述 ...

Maven之(七)pom.xml配置文件详解

setting.xml主要用于配置maven的运行环境等一系列通用的属性,是全局级别的配置文件:而pom.xml主要描述了项目的maven坐标,依赖关系,开发者需要遵循的规则,缺陷管理系统,组织和li ...

Maven之pom.xml配置文件详解

此文非原创,摘自:https://www.baidu.com/link?url=GlGgW21nijIiULDZj0RfPH8ofqGMqEnAzXiym7O3hfrZM5nFH2enukemBNTX ...

[转]Maven之(七)pom.xml配置文件详解

你可能感兴趣的:(maven,pom.xml,mysql)