Maven:筛选persistence.xml
在我们的PEObject中,Maven:筛选persistence.xml,maven,filtering,war,Maven,Filtering,War,在我们的PEObject中,persistence.xml位于相对目录中 /src/main/resources/META-INF 并且在不提供任何附加说明的情况下,将pom中的文件复制到 /WEB-INF/classes/META-INF 在Maven构建过程中。只要hibernate能够从中选择配置文件,就可以了。但是现在我们想集中一些配置值,因此使用maven-war插件来替换persistence.xml 过滤本身对各种其他文件执行,并按预期工作。然而,对于persistence.xml
persistence.xml
位于相对目录中
/src/main/resources/META-INF
并且在不提供任何附加说明的情况下,将pom中的文件复制到
/WEB-INF/classes/META-INF
在Maven构建过程中。只要hibernate能够从中选择配置文件,就可以了。但是现在我们想集中一些配置值,因此使用maven-war插件
来替换persistence.xml
过滤本身对各种其他文件执行,并按预期工作。然而,对于persistence.xml
,由于各种原因,它似乎失败了:
仅将persistence.xml
添加到webResources
时:
<resource>
<directory>${basedir}/src/main/resources/META-INF/</directory>
<filtering>true</filtering>
<includes>
<include>persistence.xml</include>
</includes>
</resource>
${basedir}/src/main/resources/META-INF/
真的
persistence.xml
文件已正确筛选,但ofc。抛出到outputdirectory的根目录中,hibernate不在其中查找它
尝试提供所需的目标文件夹时:
<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>
${basedir}/src/main/resources/META-INF/
真的
persistence.xml
WEB-INF/classes/META-INF
文件未正确筛选我假设过滤实际上可以工作,但由于文件已经复制到那里,maven拒绝覆盖仍然包含通配符的文件
有没有办法在不重新发明轮子的情况下实现这一点 我想出了解决办法。如果有人在同一问题上绊倒,只需发布: 上面列出的过滤被包装在
标记中,因为它实际上是关于处理webapp内容的
因此,简而言之,我告诉maven部署每个资源,不要碰它,并且在部署webresources时,尝试处理资源,并将其部署到一个资源文件夹——该文件夹已经未经处理 这里有一段适用于我的XML代码:
<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>
org.apache.maven.plugins
maven战争插件
2.3
真的
src/main/resources/META-INF
**/persistence.xml
WEB-INF/classes/META-INF
太缺乏信息,尤其是在与Maven打交道时。谢谢Paco,这为我指明了正确的方向。我使用了
标记,而不是
,并且只能使用META-INF
作为targetPath,但在其他方面效果很好。