【问题标题】:Compile error on Serializable when compiling with OpenJdk11使用 OpenJdk11 编译时 Serializable 出现编译错误
【发布时间】:2020-09-19 07:47:58
【问题描述】:

在 Serializable 类上使用 OpenJdk11 编译 Jdk8 代码库时出现编译错误:无法解析类型 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 模块的一部分,为什么编译器会出错。

【问题讨论】:

  • 我们可以看看你的pom.xml吗?
  • @JacobG - pom.xml 几乎就是我在 Jdk8 中使用的。但我更新了一些东西,比如 maven-compiler-plugin 版本到 3.8.0。从 3.0.和 aspect-maven-plugin 从 1.4 到 1.11 版。 pom.xml 非常大,它引用了我们所有的内部库和第三方库。如果我可以发送它的某个部分,是否有可能?
  • “和 aspect-maven-plugin 从 1.4 到 1.11 版” - 它在您发布的编译器错误中显示 1.4。
  • @JacobG 这是一个好点。由于 aspectj-maven-plugin 版本是在依赖管理中定义的,所以必须刷新它。我在 Serializable 上提出的错误不再发生。非常感谢。

标签: java serialization java-11 openjdk-11 adoptopenjdk


【解决方案1】:

Jacob G. 帮助解决了它可能是由于 aspectj-maven-plugin 版本。对于 OpenJdk11,版本 1.4 将不起作用。将其升级到 1.11 后,不再出现此错误。

【讨论】:

    猜你喜欢
    • 2023-04-11
    • 2014-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 2013-10-28
    • 1970-01-01
    相关资源
    最近更新 更多