1、POM是Project Object Module 项目对象模型,通过xml文件来描述我们的项目
2、GVA(groupId,version,artifactId)我们的项目通过这个元素来标识它的唯一性
了解完这两个概念之后,我将会通过一个项目来个大家具体讲述pom.xml文件里面的一些配置
1、首先我建立一个maven工程名为:spring_maven,其pom.xml内容如下:
4.0.0 com.wq spring_maven 0.0.1-SNAPSHOT pom spring-maven spring maven project spring_mave_dao spring_maven_service spring_maven_web 4.0.5.RELEASE 1.7.6 UTF-8 junit junit 4.5 test org.slf4j slf4j-api ${slf4j.version} compile org.slf4j slf4j-log4j12 ${slf4j.version} compile log4j log4j 1.2.17 compile org.springframework spring-core ${spring.version} compile org.springframework spring-beans ${spring.version} compile org.springframework spring-context ${spring.version} compile org.springframework spring-context-support ${spring.version} compile org.springframework spring-expression ${spring.version} compile org.springframework spring-test ${spring.version} compile commons-codec commons-codec 1.8 compile org.apache.commons commons-lang3 3.3.2 compile commons-collections commons-collections 3.2.1 compile org.springframework spring-aop ${spring.version} compile org.springframework spring-tx ${spring.version} compile org.springframework spring-orm ${spring.version} compile org.springframework spring-aspects ${spring.version} compile org.springframework spring-asm 3.1.4.RELEASE compile
2、在该项目中分别建立其他的三个模块为spring_maven_dao,spring_maven_service,spring_maven_web,它们的pom.xml分别为:
spring_maven_dao:
4.0.0 com.wq spring_maven 0.0.1-SNAPSHOT spring_mave_dao jar spring_mave_dao Maven Mojo http://maven.apache.org org.apache.maven maven-plugin-api 2.0 org.mybatis mybatis 3.2.7 compile org.mybatis mybatis-spring 1.2.2 compile org.springframework spring-aop compile org.springframework spring-tx compile org.springframework spring-orm compile org.springframework spring-aspects compile mysql mysql-connector-java 5.1.25 compile com.mchange c3p0 0.9.5-pre7 compile commons-dbcp commons-dbcp 1.4 compile
spring_maven_service:
4.0.0 com.wq spring_maven 0.0.1-SNAPSHOT spring_maven_service jar spring_maven_service Maven Mojo http://maven.apache.org org.apache.maven maven-plugin-api 2.0 ${project.groupId} spring_mave_dao ${project.version}
spring_maven_web:
4.0.0 com.wq spring_maven 0.0.1-SNAPSHOT spring_maven_web war spring_maven_web http://maven.apache.org ${project.groupId} spring_maven_service ${project.version} org.springframework spring-web ${spring.version} compile org.springframework spring-webmvc ${spring.version} compile javax.servlet servlet-api 2.5 compile javax.servlet jstl 1.2 compile maven-compiler-plugin 2.3.2 1.6 UTF8 default-testCompile test-compile testCompile default-compile compile compile maven-war-plugin 2.1.1 default-war package war com.caucho resin-maven-plugin 4.0-SNAPSHOT 127.0.0.1 8080 admin admin
各个项目之间的依赖关系是spring_maven->spring_maven_dao->spring_maven_service->spring_maven_web,下面我们来详细的分析一下这些pom.xml文件的内容:
1、spring_maven相当于父pom,我们在定义它的packaging方式定义为pom,这样我们的子pom才能继承它的pom
2、我们把子模块中需要用到的jar包可以在spring_maven中中dependencies添加这些依赖
3、把子模块中会出现但是不是所有的模块中出现的依赖定义在dependencyManagement中
4、可以通过设置properties设置我们在pom中需要用到的一些变量,比如依赖的版本号
5、在子模块中会继承所有父pom的元素。
6、我们可以在pom文件中定义一些插件
7、注意一些模块化的定义