Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 10上带有JPA静态元模型的JHipster5项目_Jpa_Jhipster_Metamodel_Maven Compiler Plugin_Java 10 - Fatal编程技术网

Java 10上带有JPA静态元模型的JHipster5项目

Java 10上带有JPA静态元模型的JHipster5项目,jpa,jhipster,metamodel,maven-compiler-plugin,java-10,Jpa,Jhipster,Metamodel,Maven Compiler Plugin,Java 10,我一直在尝试升级我的JHipster 5应用程序以使用Java10,但我无法让它用Maven编译和处理JPA静态元模型 显然,maven编译器插件没有触发hibernate jpamodelgen,以生成JPA静态元模型 为了升级项目,我有: 已安装Oracle的JDK 10.0.1 将我的pom.xml切换到10 升级了maven编译器插件,添加java.xml.bind模块(因为从java 10开始默认不包括该模块),如下所示: <plugin> <

我一直在尝试升级我的JHipster 5应用程序以使用Java10,但我无法让它用Maven编译和处理JPA静态元模型

显然,
maven编译器插件
没有触发
hibernate jpamodelgen
,以生成JPA静态元模型

为了升级项目,我有:

  • 已安装Oracle的JDK 10.0.1
  • 将我的pom.xml切换到
    10
  • 升级了maven编译器插件,添加
    java.xml.bind
    模块(因为从java 10开始默认不包括该模块),如下所示:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>${maven-compiler-plugin.version}</version>
            <configuration>
                <!-- fork is needed so compiler args can be used -->
                <fork>true</fork>
                <compilerArgs>
                    <arg>-J--add-modules</arg>
                    <arg>-Jjava.xml.bind</arg>
                </compilerArgs>
                <annotationProcessorPaths>
                    <path>
                        <groupId>org.mapstruct</groupId>
                        <artifactId>mapstruct-processor</artifactId>
                        <version>${mapstruct.version}</version>
                    </path>
                    <!-- For JPA static metamodel generation -->
                    <path>
                        <groupId>org.hibernate</groupId>
                        <artifactId>hibernate-jpamodelgen</artifactId>
                        <version>${hibernate.version}</version>
                    </path>
    
                </annotationProcessorPaths>
            </configuration>
        </plugin>
    
    
    org.apache.maven.plugins
    

    另外,我在上提供了这个示例项目


    是我升级到Java 10的提交更改,以便在此处注册解决方案以帮助他人,以下是解决此问题的方法:

    原来是Java 9与hibernate的兼容性问题-jpamodelgen@5.2.16.Final
    。一旦我升级到Hibernate版本
    5.3.1.Final
    ,它又开始编译了


    我还必须解决以下JAXB依赖项。

    我也有同样的问题。使用Java10、SpringBoot2.0.3、Hibernate5.3.1

    在Gradle中对我起作用的是将javax.xml.bind添加到annotationProcessor:

    annotationProcessor group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.0'
    
    annotationProcessor group: 'org.hibernate', name: 'hibernate-jpamodelgen', version: '5.3.1.Final'
    

    这样,hibernate jpamodelgen就不会再抱怨他缺少的
    javax.xml.bind
    依赖项了,因为它和他(annotationProcessor)在同一个组中

    我认为这将是Java 11的进一步问题,因为Java.xml.bind模块被完全删除了。