2016-10-03 62 views
0

最近认识到在我的项目mvn install命令中无法识别persistence.xml文件。Maven无法识别persistence.xml

我将hodor标签写入persistence.xml。 IDE提供了一个错误。同时我尝试使用mvn install命令编译项目,没有错误并且可以创建成功。

<?xml version="1.0" encoding="UTF-8"?> 
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> 
    <persistence-unit name="myPU" transaction-type="JTA"> 
     <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> 
     <jta-data-source>java:/OracleDS</jta-data-source> 
     <hodor>hodorhodorhodor</hodor> 
     <class>com.mycompany.MyClass</class> 
    </persistence-unit> 
</persistence> 

是否存在任何设置或插件像persistence.xml文件成功编译?

+0

如果该项目得到遵守与Maven,它只是一个Eclipse配置的问题,您可以检查项目组装,看看是否持续从右边目录中加载,你也可以尝试点击更新Maven项目,看是否它会解决这个问题......通常Maven项目结构和Eclipse项目结构由于某种原因不对齐......它是一个Web项目吗? – ivoruJavaBoy

+0

您是否使用测试JPA配置的maven插件?否则maven不会在标准编译阶段检查persistence.xml。这只是一个添加到工件的resorce文件。 – Sammyrulez

+0

@ivoruJavaBoy这是一个Web项目。 – yfpayalan

回答

0

刚刚找到答案,但没有详尽。它已完成mojohaus maven xml plugin

首先,我已经从xsi:schemaLocation标签下载了相关的.xsd文件。

<xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> 

将persistence_2_0.xsd移到我的项目资源文件夹中。

enter image description here

后进口魔力的XML插件安装到pom.xml的

<?xml version="1.0" encoding="UTF-8"?> 
<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>xml-maven-plugin</artifactId> 
    <version>1.0-beta-3</version> 
    <executions> 
     <execution> 
     <goals> 
      <goal>validate</goal> 
     </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <validationSets> 
     <validationSet> 
      <systemId>src/main/resources/persistence_2_0.xsd</systemId> 
      <dir>src/main/resources/META-INF</dir> 
     </validationSet> 
     </validationSets> 
    </configuration> 
</plugin> 

最后执行的命令mvn xml:validate并考虑到结果;

[ERROR] Invalid content was found starting with element 'hodor'. One of '{"http://java.sun.com/xml/ns/persistence":non-jta-data-source, "http://java.sun.com/xml/ns/persistence":mapping-file, "http://java.sun.com/xml/ns/persistence":jar-file, "http://java.sun.com/xml/ns/persistence":class, "http://java.sun.com/xml/ns/persistence":exclude-unlisted-classes, "http://java.sun.com/xml/ns/persistence":shared-cache-mode, "http://java.sun.com/xml/ns/persistence":validation-mode, "http://java.sun.com/xml/ns/persistence":properties}' is expected.