springboot项目利用maven进行多环境打包

项目开发环境

springboot2.0

jdk1.8

如何利用maven对springboot项目进行多环境打包呢?

springboot运行的时候默认是加载application.properties的,如果还是按照传统springmvc的maven多环境打包方式直接将配置命名为application-dev.properties,application-sit.properties等等是无法运行成功的。

那么该怎么办呢?首先找到突破口——application.properties,在项目中还是保留application.properties,根据springboot的多环境启动配置,可以在application.properties中配置启动哪个环境的配置,具体项目结构如下

springboot项目利用maven进行多环境打包_第1张图片

红圈圈中的即为需要定义的properties

首先看下application.properties这个配置文件的内容,本地启动时通过spring.profiles.active=dev直接来指定需要的环境的配置文件,但在通过maven打包的时候启用这个配置[email protected]@。spring.profiles.active就是springboot提供的在多环境配置的时候用来指定要加载对应的配置文件的。

application.properties文件如下:

#指定运行环境dev(开发环境使用), sit(测试环境使用), prod(生产环境使用). 
#maven打包的时候改为[email protected]@,@profiles.active@来自maven打包时指定的打包环境, 对应pom文件中的标签profiles.active
#spring.profiles.active=dev
[email protected]@

另外说明下,在Spring Boot中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,比如:

  • application-dev.properties:开发环境
  • application-test.properties:测试环境
  • application-prod.properties:生产环境

 

pom文件配置



	4.0.0

	com.xxx
	xxx-xxx-xxxx
	0.0.1-SNAPSHOT
	jar

	xxx-xxxx-xxx
	xxx任务

	
		org.springframework.boot
		spring-boot-starter-parent
		2.0.5.RELEASE
		 
	

	
		UTF-8
		UTF-8
		1.8
	

	
		
			org.springframework.boot
			spring-boot-starter-web
		
		
		
			org.mybatis.spring.boot
			mybatis-spring-boot-starter
			1.3.2
		
		
		
		    com.oracle
		    ojdbc6
		    11.2.0.3
		
		
		
			com.alibaba
			druid
			1.1.9
			
			
		
		    com.alibaba
		    fastjson
		    1.2.49
		
		
		
		  org.apache.commons
		  commons-lang3
		  
		
		
		    com.caucho
		    hessian
		    4.0.38
		

		
		    commons-io
		    commons-io
		    2.6
		
		
		
		    com.dingtalk.chatbot
		    dingtalk-chatbot-sdk
		    0.9.0-SNAPSHOT
		

        
            org.apache.httpcomponents
            httpclient
         
		
		
			com.cwbase
			logback-redis-appender
			1.1.5
		
		
		
		    org.apache.commons
		    commons-pool2
		    
		
		
			org.springframework.boot
			spring-boot-starter-test
			test
		
		
			org.springframework.boot
			spring-boot-configuration-processor
			true
		
	

	
	
	    
			
			dev
			
				dev
			
	 		
				
    		 	
				true
			
		
		
			
			sit
			
				sit
			
		
		
			
			prod
			
				prod
			
		
	

	
		
		指定打包后生成的包名
		
		
			
				org.springframework.boot
				spring-boot-maven-plugin
				
					${java.version}
					${java.version}
				
			
		
		
		
			
				src/main/resources
				
				
					config/dev/*
					config/sit/*
					config/prod/*
					**/*.properties
				
			
			
				src/main/resources/config/${profiles.active}
			
			
		     
		         src/main/resources
		         
		         
		             application-${profiles.active}.properties
		             application.properties
		         
		         true
		     		
		     
		     
				src/main/java
				
				
					jsp/report/schedule/template/*
				
			
		     
		         src/main/java
		         
		         
		             jsp/report/schedule/template/template-${profiles.active}
		         
		         true
		     
		     	
				
		
	



如果通过eclipse进行打包的话,只需要改两个地方,看下面的截图:


springboot项目利用maven进行多环境打包_第2张图片

上图中的profiles的值sit对应pom文件中多文件配置profile下的子标签id,看下图

springboot项目利用maven进行多环境打包_第3张图片

 

总结

至此这个maven的打包配置完成,其实springboot多环境打包的难点就是如何保留application.properties


springboot项目利用maven进行多环境打包_第4张图片

你可能感兴趣的:(Maven,springboot)