使用maven屬性變量和配置文件


mvn archetype:generate

 1 <profiles>
 2         <profile>
 3             <!-- 本地環境 -->
 4             <id>local</id>
 5             <properties>                
 6                 <db-url>jdbc:oracle:thin:@localhost:1521:XE</db-url>
 7                 <db-username>***</db-username>
 8                 <db-password>***</db-password>
 9             </properties>
10         </profile>
11         <profile>
12             <!-- 開發環境 -->
13             <id>dev</id>
14             <properties>                
15                 <db-url>jdbc:oracle:thin:@172.21.129.51:1521:orcl</db-url>
16                 <db-username>***</db-username>
17                 <db-password>***</db-password>
18             </properties>
19             <!-- 默認激活本環境 -->
20             <activation>
21                 <activeByDefault>true</activeByDefault>
22             </activation>
23         </profile>
24         ...
25     </profiles>

profiles節點中,定義了二種環境:local、dev(默認激活dev環境),可以在各自的環境中添加需要的property值,接下來修改build節點,參考下面的示例:

 1 <build>
 2         <resources>
 3             <resource>
 4                 <directory>src/main/resources</directory>
 5                 <filtering>true</filtering>
 6             </resource>
 7         </resources>
 8         <plugins>
 9             <plugin>
10                 <groupId>org.apache.maven.plugins</groupId>
11                 <artifactId>maven-compiler-plugin</artifactId>
12                 <version>2.5.1</version>
13                 <configuration>
14                     <source>1.6</source>
15                     <target>1.6</target>
16                     <encoding>utf-8</encoding>
17                 </configuration>
18             </plugin>
19         </plugins>
20     </build>

resource節點是關鍵,它表明了哪個目錄下的配置文件(不管是xml配置文件,還是properties屬性文件),需要根據profile環境來替換屬性值。

通常配置文件放在resources目錄下,build時該目錄下的文件都自動會copy到class目錄下

例:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
        <property name="url" value="${db-url}" />
        <property name="username" value="${db-username}" />
        <property name="password" value="${db-password}" />        
    </bean>
</beans>

各屬性節點的值,用占位符"${屬性名}"占位,maven在package時,會根據profile的環境自動替換這些占位符為實際屬性值。

默認情況下: 

maven package

將采用默認激活的profile環境來打包,也可以手動指定環境,比如:

maven package -P dev

將自動打包成dev環境的部署包(注:參數P為大寫)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM