用OpenJdk11编译时,在Serializable上出现编译错误。

问题描述 投票:1回答:1

当我用OpenJdk11编译Jdk8代码库时,在Serializable类上出现了编译错误。java.io.Serializable类型不能被解析。它是从所需的.class文件中间接引用的。

[ERROR] Failed to execute goal org.codehaus.mojo:aspectj-maven-plugin:1.4:compile (default) on project test-proj: Compiler errors:
[ERROR] error at public abstract class HiberTypeMapper implements UserType, Serializable {
[ERROR]                                                               ^^^^^^^^^^^
[ERROR] /dev_loc/test-proj/src/main/java/com/hiber/HiberTypeMapper.java:13:0::0 The type java.io.Serializable cannot be resolved. It is indirectly referenced from required .class files
[ERROR]
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:aspectj-maven-plugin:1.4:compile (default) on project il-commons: Compiler errors:
error at public abstract class HiberTypeMapper implements UserType, Serializable {
                                                              ^^^^^^^^^^^
/dev_loc/test-proj/src/main/java/com/hiber/HiberTypeMapper.java:13:0::0 The type java.io.Serializable cannot be resolved. It is indirectly referenced from required .class files

    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)

被投诉的班级

package com.hiber;

import java.io.Serializable;

import org.hibernate.usertype.UserType;


public abstract class HiberTypeMapper implements UserType, Serializable {
...
}

我的版本是:

Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T15:39:06-04:00)
Maven home: /Users/jogi/Apps/apache-maven-3.5.0
Java version: 11.0.7, vendor: AdoptOpenJDK
Java home: /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.13.6", arch: "x86_64", family: "mac"

请给出解决方案,Serializable接口是java.base模块的一部分,为什么编译器会出错。

java serialization java-11 openjdk-11 adoptopenjdk
1个回答
1
投票

Jacob G.帮助解决了这个问题,可能是由于 aspectj-maven-plugin 的版本问题。对于OpenJdk11来说,1.4版本无法使用。升级到1.11后,这个错误不再发生了。

© www.soinside.com 2019 - 2024. All rights reserved.