Maven:基于概要文件包含资源文件

Maven:基于概要文件包含资源文件,maven,Maven,我正在将一个Ant webapp项目转换为Maven。我的大部分工作正常,但我一直在试图找出如何根据配置文件从不同来源复制一些资源文件 我有src/main/resources/persistence-{dev,prod}.xml。其中一个需要作为WEB-INF/classes/META-INF/persistence.xml包含在war文件中 我希望在开发人员配置文件处于活动状态时复制开发人员版本,prod处于活动状态时的prod版本。只需像这样使用maven resources插件,并在配置

我正在将一个Ant webapp项目转换为Maven。我的大部分工作正常,但我一直在试图找出如何根据配置文件从不同来源复制一些资源文件

我有
src/main/resources/persistence-{dev,prod}.xml
。其中一个需要作为
WEB-INF/classes/META-INF/persistence.xml
包含在war文件中


我希望在开发人员配置文件处于活动状态时复制开发人员版本,prod处于活动状态时的prod版本。

只需像这样使用maven resources插件,并在配置文件中设置文件名或扩展名的属性。

如果您不热衷于拥有3个单独的persistence.xml文件并有选择地复制其中一个文件的范例,您可以使用maven配置文件进行如下过滤(前几天刚实施,今天看到了你的帖子):

在persistence.xml中:

<property name="hibernate.show_sql" value="${hibernate.debug}" />
<property name="hibernate.format_sql" value="${hibernate.debug}" />

在pom.xml中创建配置文件并定义变量:

<profiles>
  <profile>
    <id>hib-debug</id>
    <properties>
      <hibernate.debug>true</hibernate.debug>
    </properties>
  </profile>
</profiles>

hib调试
真的
在不指定配置文件的情况下为生成定义默认值:

<properties>
  <hibernate.debug>false</hibernate.debug>
</properties>

假的
并且…请确保启用资源筛选:

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

src/main/resources
真的

然后使用mvn-Phib debug构建,瞧!替换完成了。

我认为maven resources插件不能解决他的问题,因为据我所知,该插件只能包含或排除文件,不能复制和重命名文件。您的答案不包括重命名persistence.xml文件。您可以使用c语言,而不是使用不同的源文件名您可以在不同的文件夹中加载资源,并将其作为属性,这样您就不必重命名文件..@ManfredMoser-我认为在一个
persistence.xml
中使用自定义属性是合适的方法。可能是这样,也可能不是这样。在任何情况下,这都不是问题所在。