一、引言
一般的開發都是在原有的項目基礎上進行,而且打包發佈都是基於公司內部系統。因此,如何從無到有創建一個項目,並打包部署到指定機器上,是一項必須補充和掌握的知識。
下面講解的是基於mvn構建的Spring boot項目。
二、知識點
2.1 pom文件編寫
2.1.1 最小的pom配置
1、根據環境生效不同的配置
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--兩級項目結構中的父項目-->
<parent>
<artifactId>order-center</artifactId>
<groupId>com.qingzhou.platform</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<!--pom模型版本-->
<modelVersion>4.0.0</modelVersion>
<!--項目名稱和版本-->
<artifactId>study</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--編寫環境配置信息,可以在編譯的時候,將指定目錄下的配置文件拷貝到ClassPath目錄下。-->
<!--ClassPath目錄 也就是編譯後的產出目錄:target/classes目錄-->
<profiles>
<profile>
<!--環境名稱-->
<id>dev</id>
<!--默認生效的配置環境,也可以在編譯的時候,使用mvn命令指定環境。mvn clean complile -Pdev.-->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<!--指定配置文件目錄,編譯時會將directory配置的目錄下的所有配置拷貝到ClassPath目錄下-->
<!--${basedir}是指pom文件所在根目錄-->
<build>
<resources>
<resource>
<directory>${basedir}/src/main/resources/dev</directory>
</resource>
</resources>
</build>
</profile>
<!--預發配置-->
<profile>
<id>pre</id>
<build>
<resources>
<resource>
<directory>${basedir}/src/main/resources/pre</directory>
</resource>
</resources>
</build>
</profile>
<!--線上配置-->
<profile>
<id>online</id>
<build>
<resources>
<resource>
<directory>${basedir}/src/main/resources/online</directory>
</resource>
</resources>
</build>
</profile>
</profiles>
</project>
2.2 配置文件
2.2.1 配置文件格式
- yml和properties格式文件都是Spring boot支持的配置文件格式。
- properties配置優先級高於properties,在工程裏面只用一種配置方式即可,避免引入複雜性。
- yml配置具備層級接口更清晰,用冒號做分層。需要注意的是,key和value一定要留一個空格。properties要配置全路徑,點號分割,等號賦值。
備註:springboot官方推薦使用application.yml配置文件
// yml 配置風格。
spring:
profiles:
active: dev //必須有一個空格
spring.profiles.active: dev
// properties 配置風格
spring.profiles.active=dev
2.2.2 boostrap和applicaton
- boostrap 由父 ApplicationContext 加載,比applicaton優先加載
- boostrap 裏面的屬性不能被覆蓋
bootstrap 配置文件有以下幾個應用場景:
- 使用 Spring Cloud Config 配置中心時,這時需要在 bootstrap 配置文件中添加連接到配置中心的配置屬性來加載外部配置中心的配置信息。
- 一些固定的不能被覆蓋的屬性。
- 一些加密/解密的場景。