在mvn编译期间需要persistence.xml

时间:2018-03-27 13:47:33

标签: java maven jpa persistence

所以这是场景, 我正在尝试编译一个具有一些持久类的maven项目。我在persistence.xml下有src\main\resources\。这编译得很好,但是如果我在jar的META-INF目录下手动移动persistence.xml(xml文件打包在jar的根目录下),我就会发现运行时错误,因为找不到持久性,这很容易解决。

现在,如果我在persistence.xml下移动src\main\resources\META-INF,我会得到奇怪的编译时错误

  

致命错误编译:java.lang.RuntimeException:   javax.annotation.processing.FilerException:尝试重新创建文件   对于my.package.EntityClassName _

类型

这个EntityClassName可以是我的任何一个Entity类。

我只想在jar的META-INF目录下打包persistence.xml。 有人可以指出我错过了什么吗?

如果重要的话,我正在使用maven编译器源和目标作为1.6。

<小时/> 编辑:这个项目有一个父maven项目。

  <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.some.domain</groupId>
        <artifactId>p-parent</artifactId>
        <version>1.0.0</version>
        <packaging>pom</packaging>
        <modules>
            <module>m1</module>
            <module>m2</module>
            <module>m3</module>
        </modules>

        <properties>
            <maven.compiler.source>1.6</maven.compiler.source>
            <maven.compiler.target>1.6</maven.compiler.target>
        </properties>

        <scm>
            <connection>scm:git:https://some.place/project.git</connection>
        </scm>

        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                    <version>4.8.2</version>
                </dependency>
                <dependency>
                    <groupId>org.eclipse.persistence</groupId>
                    <artifactId>eclipselink</artifactId>
                    <version>2.6.0</version>
                </dependency>
                <dependency>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                    <version>1.2.16</version>
                </dependency>
                <dependency>
                    <groupId>org.eclipse.persistence</groupId>
                    <artifactId>javax.persistence</artifactId>
                    <version>2.0.0</version>
                </dependency>
                <dependency>
                    <groupId>org.eclipse.persistence</groupId>
                    <artifactId>org.eclipse.persistence.jpa.modelgen</artifactId>
                    <version>2.4.2</version>
                </dependency>
                <dependency>
                    <groupId>com.oracle</groupId>
                    <artifactId>ojdbc6</artifactId>
                    <version>11.1.0.6.0</version>
                </dependency>
            </dependencies>
        </dependencyManagement>

    </project>

这个项目的主题

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.some.domain</groupId>
        <artifactId>p-parent</artifactId>
        <version>1.0.0</version>
    </parent>

    <artifactId>m2</artifactId>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>eclipselink</artifactId>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>javax.persistence</artifactId>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>org.eclipse.persistence.jpa.modelgen</artifactId>
        </dependency>
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
        </dependency>

    </dependencies>

</project>

1 个答案:

答案 0 :(得分:0)

使用-proc:none作为编译器参数解决了问题。