gpt4 book ai didi

java - 为什么 gradle 失败并出现包 javax.xml.bind.annotation 不存在错误?

转载 作者:行者123 更新时间:2023-11-30 05:23:41 25 4
gpt4 key购买 nike

我有一个相当复杂的 gradle 设置(一个父项目和许多子项目)。其中一个子项目失败并出现以下错误:

包javax.xml.bind.annotation不存在

我正在使用包含此包的 Oracle Java 8(它已在 Java 11 中删除)。我确实安装了 Java 11,但它不是我的 Activity Java 版本。这是唯一因这些错误而失败的子项目,而我确实有其他子项目引用相同的包并成功构建。

理论上是不会混淆Java版本的。

$ echo $JAVA_HOME
/usr/lib/jvm/java-8-u221-oracle
$ java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

使用 gradle 包装器:

$ ./gradlew -v

------------------------------------------------------------
Gradle 5.6.4
------------------------------------------------------------

Build time: 2019-11-01 20:42:00 UTC
Revision: dd870424f9bd8e195d614dc14bb140f43c22da98

Kotlin: 1.3.41
Groovy: 2.5.4
Ant: Apache Ant(TM) version 1.9.14 compiled on March 12 2019
JVM: 1.8.0_221 (Oracle Corporation 25.221-b11)
OS: Linux 5.0.0-36-generic amd64

即使当我 println(org.gradle.internal.jvm.Jvm.current()) 时,它也会打印 Java 8。

最佳答案

我明白了!问题是 javac -version 是错误的,它指向 Java 11 而不是 8,尽管我的 java -versionehco $JAVA_HOME 都指向 Java 8。

我使用 --info 选项运行 gradle 任务,并仔细阅读输出。我发现在接近尾声的时候它说:

Compiling with Java command line compiler 'javac'.
Starting process 'command 'javac''. Working directory: /path/to/project Command: javac @/path/to/project/build/tmp/compileJava/java-compiler-args.txt
Successfully started process 'command 'javac''
:project:compileJava (Thread[Execution worker for ':',5,main]) completed. Took 2.035 secs.
2 actionable tasks: 2 executed

所以我想到检查javac -version,果然,我找到了javac 11.0.4。原因是上次我使用 update-alternatives --config java 将 Java 从 8 更改为 11 时,我忘记了 update-alternatives --config javac也是如此。

关于java - 为什么 gradle 失败并出现包 javax.xml.bind.annotation 不存在错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59084067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com