maven学习三部曲之二pom.xml详解

阅读更多
大家在学习pom.xml文件之前先了解一些概念:
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
					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、注意一些模块化的定义

你可能感兴趣的:(maven,modules)