6

dev と production の 2 つのプロファイルを持つ maven pom があります。

プロジェクトにいくつかの xml ファイルがあります。たとえば、persistence.xml です。開発環境と本番環境の設定が異なる

開発アセンブリと運用アセンブリに適切なファイルを配置する方法が必要です

各xmlファイルの2つのコピーを持ち、アセンブリに正しく配置することは可能でしょうか? または、xmlファイル内のpomファイルの設定を使用することは可能ですか?

他のアイデアやベストプラクティスはありますか?

4

1 に答える 1

11

あなたが探しているものは、すでにここで回答されています: Maven: プロファイルに基づいてリソース ファイルを含める

2 つのファイルを用意する代わりに、別の解決策として、properties.xml 内でプロパティを直接使用する方法があります。

    <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
    <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
    <property name="hibernate.connection.username" value="${db.username}"/>
    <property name="hibernate.connection.password" value="${db.password}"/>
    <property name="hibernate.connection.url" value="${db.connectionURL}/database"/>

pom.xml で、各環境の各プロパティの値を定義します。

<profile>
  <id>development</id>
  <properties>
    <db.username>dev</db.username>
    <db.password>dev_password</db.password>
    <db.connectionURL>http://dev:3306/</db.connectionURL>
  </properties>
</profile>
<profile>
  <id>production</id>
  <properties>
    <db.username>prod</db.username>
    <db.password>prod_password</db.password>
    <db.connectionURL>http://prod:3306/</db.connectionURL>
  </properties>
</profile>

次に、フィルタリングを使用して、各環境で適切な値によるトークンの置換を有効にすることができます。

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

このソリューションのモードの詳細については、このページを参照してください。

本当に同じファイルの 2 つのコピーが必要な場合は、

于 2012-12-01T11:16:52.657 に答える