один из наших классов использует связанный API jaxb из jdk 1.6. Когда я пытаюсь скомпилировать это с помощью maven (для JAVA_HOME установлено значение JDK 1.6, и в среде IDE показано, что maven работает с использованием JDK 1.6), я получаю ошибку класса, не найденную для библиотеки jaxb. рассматриваемый класс присутствует в rt.jar в папке JDK 1.6 lib. Любые идеи???
Maven не получает связанные библиотеки JDK 1.6
Ответы (2)
Ну... ошибка произошла из-за использования одного из внутренних классов солнца, который был недоступен во время компиляции maven. Хотя сценарий интересный...
В моем проекте используется NamespaceMapper, предоставляемый внутренними библиотеками Sun JAXB. Он скомпилирован в среде eclipse без mavenized (с предупреждением), так как rt.jar был в пути к классам. Мы начали развивать этот проект, и вдруг я получил за него ClassNotFound. После некоторого поиска в Google я наткнулся на эти два поста, которые заставили меня двигаться в правильном направлении.
http://forums.java.net/jive/thread.jspa?threadID= 24225а>
http://www-01.ibm.com/support/docview.wss?rs=180&uid=swg1PK88316
BottomLine: не используйте внутренние библиотеки (в именах пакетов есть внутренние).
Попробуйте добавить этот плагин в раздел сборки pom.xml Maven:
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
Обновление: это не работает.
Вы пробовали это?
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.1</version>
<scope>system</scope>
<systemPath>${java.home}/lib/rt.jar</systemPath>
</dependency>