gpt4 book ai didi

java - Maven 无法编译依赖于 rt.jar 的类

转载 作者:太空狗 更新时间:2023-10-29 22:54:03 26 4
gpt4 key购买 nike

我负责的 CI-server (Hudson) 构建 Maven 项目。最后一次提交后,构建失败:

[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] \hudson\jobs\path to my class\MyClass.java:[33,62] package com.sun.xml.internal.messaging.saaj.packaging.mime.util does not exist
[ERROR] \hudson\jobs\path to my class\MyClass.java:[75,5] cannot find symbol
symbol : class BASE64EncoderStream
location: class |fullname of MyClass|
[ERROR] \hudson\jobs\path to my class\MyClass.java:[75,38] cannot find symbol
symbol : class BASE64EncoderStream
location: class |fullname of MyClass|
[INFO] 3 errors

所需类 (com.sun.xml.internal.messaging.saaj.packaging.mime.util.BASE64EncoderStream) 位于 rt.jar 中。

我尝试(按照 http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#System_Dependencies 中的说明)在项目的 pom.xml 中添加系统依赖:

<dependency>
<groupId>dummy</groupId>
<artifactId>dummy</artifactId>
<version>1</version>
<scope>system</scope>
<systemPath>${java.home}/lib/rt.jar</systemPath>
</dependency>

它没有帮助。

最有趣的是,所有文件都在我同事的本地机器上编译得很好(他使用 Eclipse 内置编译器)。

在互联网上我发现了同样的问题(链接:http://maven.40175.n5.nabble.com/Why-can-t-Maven-find-com-sun-xml-internal-messaging-saaj-util-ByteOutputStream-class-td107361.html)。最后的回答是这个问题的原因是Oracle的Java编译器。

所以,我把Oracle的jdk改成了OpenJDK,但是没有用。

有人对如何解决这个问题有什么建议吗?

最佳答案

需要指定-XDignore.symbol.file并添加 rt.jar 依赖项和 <fork>true</fork>因为编译器插件将以其他方式静默删除任何 -XD 标志:例如

    ...
<dependency>
<groupId>groupid</groupId>
<artifactId>artifiactId</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${java.home}/lib/rt.jar</systemPath>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<compilerArgs>
<arg>-XDignore.symbol.file</arg>
</compilerArgs>
<fork>true</fork>
</configuration>
...

关于java - Maven 无法编译依赖于 rt.jar 的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13121954/

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