2016-10-03 46 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.