CI-сервер (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, но это не помогло.
Есть ли у кого-нибудь предложения по решению этой проблемы?