1. 程式人生 > >maven profile 和 spring boot profile的區別

maven profile 和 spring boot profile的區別

maven profile 配置

maven profile 和 spring boot profile的區別
看看哪個適合你的使用場景,這兩個是不一樣的使用場景,具體細節點選上面的連結。
application.yml檔案存放通用配置。下面三個檔案分別對應,開發,測試,生產環境
application-dev.yml application-uat.yml application-prod.yml
都在resource目錄下面。

1, application.yml

spring:
  profiles:
    active:
#打包時需要修改此屬性,需區分引用dev uat prod等環境的配置檔案
    -  @
[email protected]

2, pom.xml

<!--配置多環境打包-->
	<profiles>
		<!--開發環境-->
		<profile>
			<id>dev</id>
			<properties>
				<build.profile.id>dev</build.profile.id>
				<profileActive>dev</profileActive>
			</properties>
			<activation>
				<!--如果不指定,則預設使用dev開發環境配置-->
				<activeByDefault>true</activeByDefault>
			</activation>
		</profile>
		<!-- 測試環境-->
		<profile>
			<id>uat</id>
			<properties>
				<build.profile.id>uat</build.profile.id>
				<profileActive>uat</profileActive>
			</properties>
		</profile>
		<!--生產環境-->
		<profile>
			<id>prod</id>
			<properties>
				<build.profile.id>prod</build.profile.id>
				<profileActive>prod</profileActive>
			</properties>
		</profile>
	</profiles>

	<build>
		<!-- profile對資源的操作 -->
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<excludes>
					 <!--在打包的時候先去掉所有的yml檔案-->
					<exclude>application*.yml</exclude>
				</excludes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
				<!-- 是否替換@
[email protected]
表示的maven properties屬性值 --> <filtering>true</filtering> <!--在打包的時候,根據-P引數,加上需要的yml配置檔案--> <includes> <include>application.yml</include> <include>application-${profileActive}.yml</include> </includes> </resource> </resources> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>

3, 打包命令

// -P 後面的uat、prod、dev會自動打包相應的配置檔案到jar包中。
mvn clean install -DskipTests -P uat

4, 結論,

maven profile 是在build time 生成,生成的jar包是不一樣的。

網上看的,適用於由於生產環境、測試環境,開發環境的伺服器配置不同。