プロフィールMavenのビルド展開パッケージを使用して、異なる環境

良いプロジェクトの開発の後、通常は5つの環境まで私たちの会社のように、複数の環境で展開:ネイティブ(環境ローカル)、開発環境(開発チーム内で(セルフテスト)DEVを)、(テストチームに与えられます)テスト環境(テスト)、プレリリース環境(事前)、公式生産環境(製品版)、各環境のような独自の構成パラメータがありますデータベース接続などのリモートコールのアドレスをWS。各ビルド環境であれば前に手動で明らかにあまりにもファッション、これらのパラメータを変更します。

Mavenのは、アカウントにこれらの問題を取っているだろう、以下のPOMスニペットを参照してください。

<profiles>
        <profile>
            <!-- 本地环境 -->
            <id>local</id>
            <properties>                
                <db-url>jdbc:oracle:thin:@localhost:1521:XE</db-url>
                <db-username>***</db-username>
                <db-password>***</db-password>
            </properties>
        </profile>
        <profile>
            <!-- 开发环境 -->
            <id>dev</id>
            <properties>                
                <db-url>jdbc:oracle:thin:@172.21.129.51:1521:orcl</db-url>
                <db-username>***</db-username>
                <db-password>***</db-password>
            </properties>
            <!-- 默认激活本环境 -->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        ...
    </profiles>
ローカル、DEV(DEV環境がデフォルトで起動される)、次の例を参照して、変更する次のノードを構築し、環境を必要とし、それぞれのプロパティ値で添加することができる:ノードプロファイルは、環境の二種類を定義しました:

<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>2.5.1</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <encoding>utf-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

リソースノードは、それが必要とするディレクトリ内の設定ファイルは、プロファイル環境に基づいてプロパティ値に置き換えられることを示し、キーです。

そのディレクトリ内のビルドファイルは、自動的に次のクラスディレクトリにコピーしますリソースディレクトリ内の通常の構成ファイル、

図含有量がバネdatabase.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"
    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>

プレースホルダ「と、各ノードの属性値、$ {name}の属性 Mavenのパッケージは、自動的に環境の実際のプロファイルに応じて、プレースホルダのプロパティ値を置き換えます」プレースホルダー、。

デフォルト: 

Mavenのパッケージ

デフォルトのプロファイルは、環境とは、例えば、手動で指定することができ、パッケージの環境を有効:

Mavenのパッケージ  -P DEV

自動的に展開パッケージのdevの環境にパッケージ化(注:パラメータPが大文字で



最後に、我々は、使用のインスタンスの例を与えます:

1、開発及び生産環境では異なる方法で問題のデータソースを使用して

マシンは、開発を容易にするために、多くの開発者は、そう簡単にそれを修正し、直接JDBCデータベースを使用して直接接続を好む場合は、

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        <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}" />
        <property name="defaultAutoCommit" value="false" />
        <property name="initialSize" value="2" />
        <property name="maxActive" value="10" />
        <property name="maxWait" value="60000" />
    </bean>
典型的には、JNDIデータソースウェブサーバ(などのWebLogic)に配置された生産環境、
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName" value="appDS" />        
</bean>

プリプロダクションは、我々は手動で各リリースを変更する必要がある場合は、あまりにも原始的となり、プロファイルの達人によって解決することができます

設定ファイルに入れ 

<bean id="${db-source-jdbc}" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        <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}" />
        <property name="defaultAutoCommit" value="false" />
        <property name="initialSize" value="2" />
        <property name="maxActive" value="10" />
        <property name="maxWait" value="60000" />
    </bean>
    
    <bean id="${db-source-jndi}" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName" value="appDS" />        
    </bean>
即ち、ビーンIDのプレースホルダを有する、等がのpom.xmlに下方に設けられています。
<profile>
            <!-- 本机环境 -->
            <id>local</id>
            <properties>
                ...
                <db-source-jdbc>dataSource</db-source-jdbc>
                <db-source-jndi>NONE</db-source-jndi>
                <db-url>jdbc:oracle:thin:@172.21.129.51:1521:orcl</db-url>                
                <db-username>mu_fsu</db-username>
                <db-password>mu_fsu</db-password>
                ...
            </properties>
            <!-- 默认激活本环境 -->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>        
        <profile>
            <!-- 生产环境 -->
            <id>pro</id>
            <properties>
                ...
                <db-source-jdbc>NONE</db-source-jdbc>
                <db-source-jndi>dataSource</db-source-jndi>
                ...
            </properties>
        </profile>
    </profiles>
このように、 MVN地元のため-Pクリーンパッケージ変更 パッケージローカルの開発環境、生成します。
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
        <property name="url" value="jdbc:oracle:thin:@172.21.129.***:1521:orcl" />
        <property name="username" value="***" />
        <property name="password" value="***" />
        <property name="defaultAutoCommit" value="false" />
        <property name="initialSize" value="2" />
        <property name="maxActive" value="10" />
        <property name="maxWait" value="60000" />
    </bean>
    
    <bean id="NONE" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName" value="appDS" />        
    </bean>
包装本番環境 MVNきれいなパッケージ-Pプロ 、世代
<bean id="NONE" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        <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}" />
        <property name="defaultAutoCommit" value="false" />
        <property name="initialSize" value="2" />
        <property name="maxActive" value="10" />
        <property name="maxWait" value="60000" />
    </bean>
    
    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName" value="appDS" />        
    </bean>
データベース豆ばね構成の名前に合意された豆データソース参照に関連付けられている他の

公開された159元の記事 ウォン称賛75 ビュー190 000 +

おすすめ

転載: blog.csdn.net/xuehuagongzi000/article/details/79219758