Maven打包,把配置檔案引用,打到外部
阿新 • • 發佈:2019-01-28
在SIT 環境測試的時候,因為伺服器環境和本地環境可能不同,會造成不少問題,所以會進行多次打包。而且配置檔案不同,所以每次打包都要修改配置檔案,十分麻煩。
maven打包可以把配置檔案引用打成外部的,這樣就可以把sit環境的配置丟到伺服器,然後每次打包動態選擇配置檔案引用地址,就很爽了。
1.maven,pom的配置,例如:
<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" >
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>666</artifactId>
<groupId>com.xxx</groupId>
<version>0.1.0</version>
</parent>
<artifactId>xxx</artifactId>
<packaging>war</packaging >
<name>xxx</name>
<description>xxxxxx</description>
<build>
<finalName>xxx</finalName>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
<dependencies>
<dependency>
<groupId>ojdbc</groupId>
<artifactId>ojdbc</artifactId>
<version>12.1.0.1-atlassian-hosted</version>
</dependency>
</dependencies>
<properties>
<file.config.path-sit>這裡是sit配置路徑,例如:/project-sit/config/xxx/</file.config.path-sit>
<file.config.path-prod>這裡是生產配置路徑,例如:/project-prod/config/xxx/</file.config.path-prod>
</properties>
<profiles>
<!-- 開發環境 -->
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<some.config.path>
classpath:config/some.properties
<jdbc.config.path>
classpath:config/jdbc.properties
</jdbc.config.path>
</properties>
</profile>
<!-- Sit測試環境 -->
<profile>
<id>sit</id>
<properties>
<some.config.path>
file:${file.config.path-sit}some.properties
</some.config.path>
<jdbc.config.path>
file:${file.config.path-sit}jdbc.properties
</jdbc.config.path>
</properties>
</profile>
<!-- 生成環境 -->
<profile>
<id>prod</id>
<properties>
<some.config.path>
file:${file.config.path-prod}some.properties
</some.config.path>
<jdbc.config.path>
file:${file.config.path-prod}jdbc.properties
</jdbc.config.path>
</properties>
</profile>
</profiles>
</project>
2.引用配置檔案的xml的配置,例如:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 引入屬性配置檔案 -->
<bean class="com.xxx.xxx.xxx.xxx">
<property name="locations">
<list>
<value>${some.config.path}</value>
<value>${jdbc.config.path}</value>
</list>
</property>
</bean>
</beans>
3.在打包的時候。用maven進行install,命令如下:
mvn package -P sit
這裡的sit就是sit環境的配置路徑(如果在eclipse裡打包,則去掉mvn這個命令頭 ),如果使用這個打包命令,則打出來的war包裡xml引用配置檔案路徑改變,如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 引入屬性配置檔案 -->
<bean class="com.xxx.xxx.xxx.xxx">
<property name="locations">
<list>
<value>
file:/project-sit/config/xxx/some.properties
</value>
<value>
file:/project-sit/config/xxx/jdbc.properties
</value>
</list>
</property>
</bean>
</beans>
4.這樣就可以把打好的war包,直接丟到伺服器上,然後把sit的配置檔案也丟到配置的資料夾下,這樣每次都不用修改配置檔案,直接打包,重新部署就ok。copy程式碼要注意。這裡是例子,刪減了很多東西。希望不要誤導同道們,相互學習。
—————-自動化的路還有很長,假如全自動需要100步,那這裡只能算是第一步。路漫漫其修遠兮,吾將上下而不停的,擼、抄襲、copy。