spring 使用 maven profile
阿新 • • 發佈:2018-07-16
備註 ive con 打包 1.8 指定jdk efault rop BYD
這就是核心思想了。加上下面的代碼就可以打包的時候替換了spring.yml 中 maven的 變量了 。
先看看 maven 定義 profile 的寫法
<!-- profiles --> <profiles> <profile> <activation> <activeByDefault>true</activeByDefault> </activation> <id>dev</id> <properties> <profile.env>dev</profile.env> </properties> </profile> <profile> <id>test</id> <properties> <profile.env>test</profile.env> </properties> </profile> <profile> <id>product</id> <properties> <profile.env>product</profile.env> </properties> </profile> </profiles>
然後在 spring.yml 裏面這個麽寫
但是 spring 在運行的時候 已經和maven 沒有關系了 這時候 ${ 變量名的寫法 } 已經不生效了
備註: 這裏 ${ 變量名 } 是maven 引用 變量的 寫法。
比如:
這裏的 ${serverA.version}_${profile.env} 分別是引用自 前面配置文件 中定義的 maven 變量 ${serverA.version} 來自 <properties> ${profile.env} 來自 profile
怎麽才能讓 spring一識別 maven的 表達式呢?我們知道 spring運行在maven 打包以後,所以 不能可能spring運行的時候還能讀取到 maven的 變量,所以只能是在maven打包的時候替換文件。
<resources> <resource> <directory>src/main/resources/</directory> <filtering>true</filtering> </resource> </resources>
這個 代碼 加在 <build> 裏面就可以了
<!-- 指定jdk 的版本 --> <build> <resources> <resource> <directory>src/main/resources/</directory> <filtering>true</filtering> </resource> </resources> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
上面 多了一個 修改 jdk 版本的 配置,我的另一篇 博客裏面寫了 修改 jdk 版本的 maven的 2 中配置方式。
spring 使用 maven profile