我有 2 个配置文件的 maven pom:开发和生产
我的项目中有一些 xml 文件。例如 persistence.xml 。开发环境和生产环境的设置不同
我需要一种在开发和生产程序集中拥有正确文件的方法
也许可以有每个 xml 文件的 2 个副本并将其放入程序集中正确的一个?或者也许可以在 xml 文件中使用 pom 文件中的设置?
还有其他想法或最佳实践吗?
您正在寻找的内容已在此处得到解答:Maven:包含基于配置文件的资源文件
另一个解决方案是直接在 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>
有关此解决方案的模式详细信息,请查看此页面。
如果您确实需要同一文件的两个副本,您也可以使用