项目管理工具之maven

maven


maven是什么

maven是一个项目构建工具

maven如何找到jar包

举例:struts2-core-2.3.24.jar
Apache(公司名称)+ struts2(项目名称)+ 2.3.24(版本信息)

maven的常用命令

  1. clean:将根目录下的target目录清除
  2. compile:编译
  3. test:单元测试
  • 单元测试类名有要求
  • 将项目跟目下src/test/java目录下的单元测试类都会执行
  1. package:打包操作,在target目录下将项目打包成jar包或者war包···
  2. install:将当前项目打包到maven仓库里

创maven父工程的时候要将项目打包成pom

maven默认使用的jdk为1.5

  • 要想改变项目编译的jdk版本,需要在pom.xml文件中添加插件


    
        
        
            org.apache.maven.plugins
                maven-compiler-plugin
            
                1.7
                1.7
                UTF-8
            
        
    

maven概念模型

  1. 依赖管理:对jar包的管理
  2. 通过命令对项目进行构建

通过maven对项目进行拆分、聚合

  1. 拆分思路:将项目各层(dao层,service层,controller层)的代码进行拆分,提取出来到一个表现上独立的工程中
  2. 拆分成如下结构(加入项目名为ssm) :
  • ssm-parent:父工程
  • ssm-dao:(子模块)
  • ssm-service:(子模块)
  • ssm-web:(子模块)
  1. 创建好的父工程目录结构:只有pom.xml,可以推断父工程不进行编码
  • 项目需要的依赖信息在父工程中定义,子模块继承父工程
  1. 子模块都创建好之后,将ssm-dao、和ssm-service两个子模块打包成jar包,将ssm-web子模块打包成war包
  • 如ssm-service模块需要引用ssm-dao的类,则在ssm-service模块的pom文件中添加ssm-daojar包的依赖
  • 其他的模块间的引用方法相同
  1. 当单元测试批量加载spring配置文件时
    • classpath:spring/applicationContent.-*.xml(同时加载所有的符合此命名规范的xml文件)
    • classpath

使用maven的好处

  1. 不在拷贝jar包,项目不需要存放jar包,是的项目源代码变小
  2. 使用maven开的工程,如果环境统一,导入其他的项目不会报错
  3. 代码耦合度进一步降低
  4. 方便项目进行升级
  5. 节省人力成本

配置maven本地仓库

  • 找到maven解压目录下的config中的settings.xml配置文件,搜索localRepository。然后在标签中添加 D:\anzhuangqu\maven_local_repo

Maven Profile

什么是MavenProfile

在我们平常的java开发中,会经常使用到很多配制文件(xxx.properties,xxx.xml),而当我们在本地开发(dev),测试环境测试(test),线上生产使用(product)时,需要不停的去修改这些配制文件,次数一多,相当麻烦。现在,利用maven的filter和profile功能,我们可实现在编译阶段简单的指定一个参数就能切换配制,提高效率,还不容易出错.
profile可以让我们定义一系列的配置信息,然后指定其激活条件。这样我们就可以定义多个profile,然后每个profile对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果。

Maven Profile入门(修改工程的运行端口)

  1. 修改pom.xml文件

  
  	9105
  


  
  	
  		dev
  		
  			9105
  		
  	
  	
  		pro
  		
  			9205
  		
  	  
  
  
   
	  	     
	      
				org.apache.tomcat.maven
				tomcat7-maven-plugin
				2.2
				
					
					${port}
					
					/
				
	  	  
	    
    


编写不同环境的配置文件

切换数据库连接配置

  1. 我们在pinyougou-dao工程中src/main/resources下创建filter文件夹
  2. filter文件夹下创建db_dev.properties ,用于配置开发环境用到的数据库
env.jdbc.driver=com.mysql.jdbc.Driver
env.jdbc.url=jdbc:mysql://localhost:3306/pinyougoudb?characterEncoding=utf-8
env.jdbc.username=root
env.jdbc.password=123456
  1. filter文件夹下创建db_pro.properties
env.jdbc.driver=com.mysql.jdbc.Driver
env.jdbc.url=jdbc:mysql://localhost:3306/pinyougoudb_pro?characterEncoding=utf-8
env.jdbc.username=root
env.jdbc.password=123456

  1. 修改properties下的db.properties
jdbc.driver=${env.jdbc.driver}
jdbc.url=${env.jdbc.url}
jdbc.username=${env.jdbc.username}
jdbc.password=${env.jdbc.password}

  1. 定义Profile
  
  		dev
  
  
  	
  		dev
  		
  			dev
  		
  	    
  	
  		pro
  		
  			pro
  		
  	
  

  1. 资源过滤与变量替换,修改pom.xml ,在build节点中添加如下配置
  	
  		src/main/resources/filters/db_${env}.properties
  	
  	
  		
  			src/main/resources
  			true
  		  		
  	

  • 这里我们利用filter实现对资源文件(resouces) 过滤
    maven filter可利用指定的xxx.properties中对应的key=value对资源文件中的 k e y 进 行 替 换 , 最 终 把 你 的 资 源 文 件 中 的 u s e r n a m e = {key}进行替换,最终把你的资源文件中的username= keyusername={key}替换成username=value

你可能感兴趣的:(后端)