首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Maven:过滤persistence.xml

Maven:过滤persistence.xml
EN

Stack Overflow用户
提问于 2014-09-23 13:29:44
回答 2查看 1.4K关注 0票数 1

在我们的程序中,persistence.xml位于相对目录中

/src/main/resources/META-INF

并且在不给出任何附加指令的情况下,将文件中的pom复制到

/WEB-INF/classes/META-INF

在Maven构建过程中。到目前为止,hibernate能够从中选择配置文件,这是很好的。但是现在我们想集中一些配置值,因此使用maven-war-plugin来替换persistence.xml中的临时通配符。

过滤本身对各种其他文件执行,并按预期工作。然而,对于persistence.xml来说,由于各种原因,它似乎失败了:

当只将persistence.xml添加到webResources

代码语言:javascript
运行
复制
<resource>
    <directory>${basedir}/src/main/resources/META-INF/</directory>
    <filtering>true</filtering>
    <includes>
        <include>persistence.xml</include>
    </includes>
</resource>

文件被正确地过滤,但是ofc。抛到输出目录的根目录中,而hibernate不查找它。

当试图提供所需的目标文件夹时:

代码语言:javascript
运行
复制
<resource>
    <directory>${basedir}/src/main/resources/META-INF/</directory>
    <filtering>true</filtering>
    <includes>
        <include>persistence.xml</include>
    </includes>
    <targetPath>WEB-INF/classes/META-INF</targetPath>
</resource>

文件未被正确过滤。--我假设过滤实际上可以工作,但是由于文件已经复制到那里了,maven拒绝覆盖仍然包含通配符的文件。

有什么想法,如何使这个工作,而不是重新发明车轮?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-23 15:31:06

我想出了解决办法。如果有人在同样的问题上绊倒了,那就发吧:

上面列出的过滤被包装在<webResources>标签中,因为它实际上是关于处理webapp内容的。

因此,简单地说,我告诉maven部署每个资源时,不要碰它,在部署webresources时,尝试处理一个资源,并将其部署到一个未处理的中--这已经发生了。

票数 -1
EN

Stack Overflow用户

发布于 2017-08-27 08:45:24

这里有一段适合我的XML代码片段:

代码语言:javascript
运行
复制
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-war-plugin</artifactId>
  <version>2.3</version>
  <configuration>
    <webResources>                         
      <resource>
        <filtering>true</filtering>
        <directory>src/main/resources/META-INF</directory>                            
        <includes>
          <include>**/persistence.xml</include>
        </includes>
        <targetPath>WEB-INF/classes/META-INF</targetPath>
      </resource>               
    </webResources>  
  </configuration>
</plugin>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25996450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档