首页 > 代码库 > 使用maven属性变量和配置文件

使用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为大写)

使用maven属性变量和配置文件