maven - Maven,不同配置文件的xml文件

标签 maven profiles

我有2个配置文件的maven pom:开发人员和生产人员

我的项目中有一些xml文件。例如persistence.xml。开发环境和生产环境的设置不同

我需要一种在开发和生产程序集中拥有正确文件的方法

也许每个xml文件都有2个副本,然后将其放入程序集中就可以了吗?或者也许可以使用xml文件中pom文件中的设置?

还有其他想法或最佳做法吗?

最佳答案

您在寻找什么已经在这里得到答案:Maven: include resource file based on profile

除了有两个文件,另一个解决方案是直接在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>

然后,您可以使用过滤在每个环境中通过正确的值来启用 token 替换:
<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

有关此解决方案的模式详细信息,请查看this page

如果您确实需要同一文件的两个副本,则也可以使用

关于maven - Maven,不同配置文件的xml文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13658304/

相关文章:

java - Maven 将 "Release Note"部署为 Artifact

maven - 如何在子模块中禁用 nexus-staging-maven-plugin

java - 依赖 "test"范围是否适用于 Maven 中的 "integration-test"阶段?

java - Spring 轮廓组

java - 根据多个 Spring 配置文件定义 bean

java - 使用 Maven 构建时包不存在错误

Java:如何从不同的模块读取文件?

entity-framework - 如何在 mvc4 中分离调试和释放连接等

google-chrome - 管理多个 Chrome 配置文件 - OSX

spring - 以编程方式设置 Jetty Spring 轮廓