maven子父级工程学习总结

02maven基础知识回顾
两大核心功能:
依赖管理?
如果当前项目依赖于某些jar包,我们不需要把jar包拷贝当前项目中,而只需要把jar的maven仓库坐标配置到pom.xml中;
一键构建?
通过一个命令就能完成项目的编译、打包、测试、部署…

		生命周期:
			清理周期:
				clean
			默认周期:
				compile、test、package、install、deploy...
				后面的命令执行,那么前面的命令将自动执行;
			站点周期:
				site
				
仓库的分类?
	本地仓库:
		程序员自己电脑上的某个文件夹;
		
	远程仓库(私服):
		在公司的局域网内,找一台电脑,作为maven仓库;
		
	中央仓库:
		maven官方维护的仓库,里面涵盖了几乎所有的开源的jar包;
	

	当我们自己的项目中使用一个jar包的坐标时,查找流程:
		先找本地仓库,如果没找到,再找远程仓库,如果还没找到,最后找中央仓库,如果还没找到,报错;

04maven导入jar包时冲突的解决
同一个jar包(mybatis:3.4.5,3.4.6)被导入了两次;

A--->B---->C---->D
B---->D
什么是直接依赖?
	A直接依赖于B

什么是传递依赖?
	A传递依赖于C
	
	
第一声明原则如何解决jar包冲突?
	哪个配置的pom.xml的前面,哪个优先使用;
	
路径优先原则如何解决jar包冲突?
	哪个依赖的路径短,优先用哪个;
	
直接排除法如何解决jar包冲突?

      
        
        
      
    

05pom文件内标签的讲解
dependencyManagement的作用?
锁定版本(版本管理)

properties标签的作用?
	定义键值对;
	
	
*******************
	pluginManagement用来管理插件版本;

06案例dao层代码编写
需要完成那些java代码和配置文件的编写?

07案例service层代码编写
完成了那些java代码和配置文件?

08案例web层代码编写
完成了哪些java代码和配置文件?

09maven工程拆分与聚合的思想
为什么要把一个项目拆分成多个模块?
为了增强代码的复用性,可维护性
为什么把多个模块聚合成一个项目?
因为多个模块的代码聚合在一起才是一个完整的项目

10maven父子工程的创建
如何创建子模块?
选中父工程,右键选择new module;
parent标签有什么用?
标明当前项目的父工程是谁;

maven
live.longmarch
1.0-SNAPSHOT

modules标签有什么用?
标明当前项目有哪些儿子 ;

maven
live.longmarch
1.0-SNAPSHOT

***************************************
工程内容:
父工程:
parent:
有且仅有一个pom文件,用来做坐标的版本管理以及引入坐标;

			注意点:
				打包方式必须为pom:pom
		
		
	子工程:
		dao:
			1.写dao相关的内容(java、配置文件);
			2.打包方式是jar
		service:
			1.写service相关的内容(java、配置文件);
			2.打包方式是jar
		web:
			1.写controller相关的内容(java、配置文件、静态资源(html、css、js、jsp。。。));
			2.打包方式是war

11工程和模块的关系以及继承和依赖的概念
在maven父子工程中:
子模块继承父工程;
父工程依赖子模块;

父工程引用子模块的内容:
	不能使用子模块中的内容


子模块引用父工程的内容:
	直接使用父工程的内容

子模块之间相互引用:
	子模块之间不能直接使用;
	A子模块需要使用B子模块中的内容,那么需要在A自模块的pom.xml中引入B子模块才能使用;
		如果A子模块中引入B子模块,那么相当于A子模块中拥有了B子模块中所有的内容;

12传递依赖下来的包是否能用
依赖传递
如有三个项目A、B、C,当前项目为A,A依赖于B,B依赖于C。则项目C在A中是什么样的依赖关系呢?
A传递依赖于C

坐标的依赖范围:
	compile/runtime/test/provided/system

如果父模块中配置的坐标的scope范围值是   test、provided、system,子模块中不能直接使用;如果要用,在子模块中自己引入即可。

13在父子工程中填充代码

applicationContext.xml被拆分成几部分?
如何把多个spring配置文件整合到一个配置文件中?

14maven父子工程三种启动方式
1.操作父工程;
2.操作web子模块;
3.部署到本地的tomcat上;

************************
	先install,再tomcat7-run;

如果修改了代码,先clean,再install,最后tomcat7-run

15私服的安装和启动(了解)
如何安装nexus私服?

如何启动nexus服务?
	
库分类:
	hosted?
		
	proxy?
		
	group?

16私服的应用(了解)
如何把本地的应用发布到私服上?
如何把私服上的jar包下载到本地?

******************发布****************************
	1.配置maven的settings.xml
		
			
				releases
				admin
				admin123
			
			
				snapshots
				admin
				admin123
			
		

	2.在本地项目的pom文件中配置:
	    
			
				releases
				http://localhost:8081/nexus/content/repositories/releases/
			
			
				snapshots
				http://localhost:8081/nexus/content/repositories/snapshots/
			
		


***********************下载***********************************
	在本地maven的settings配置文件中配置:
	
		 
			
			dev
			
				 
					nexus 
					http://localhost:8081/nexus/content/groups/public/ 
					
						true
					 
					
						true
					
				
			
			 
				 
					public
					Public Repositories
					http://localhost:8081/nexus/content/groups/public/
				
			
		
		 
			
			bbbb
			
				 
					nexus 
					http://localhost:8081/nexus/content/groups/public/ 
					
						true
					 
					
						true
					
				
			
			 
				 
					public
					Public Repositories
					http://localhost:8081/nexus/content/groups/public/
				
			
		
	  

	  
			
			bbbb
	  

17安装第三方jar包到本地仓库
mvn install:install-file -DgroupId=公司id -DartifactId=项目id -Dversion=版本号
-Dfile=jar包文件本地磁盘路径 -Dpackaging=打包方式

18安装第三方jar包到私服
1.在settings配置文件中添加登录私服第三方登录信息

thirdparty
admin
admin123

2.执行如下命令
mvn deploy:deploy-file -DgroupId=公司id -DartifactId=项目id
-Dversion=版本号 -Dpackaging=打包方式 -Dfile=本地jar路径
-Durl=私服路径 -DrepositoryId=仓库名称

maven子父级工程学习总结_第1张图片

maven子父级工程学习总结_第2张图片

maven子父级工程学习总结_第3张图片

maven子父级工程学习总结_第4张图片

你可能感兴趣的:(maven)