Я разрабатываю программное обеспечение Java с помощью IDE NetBeans 6.5 (сборка 090226) с Maven (4.0.5) с использованием Java (1.6.0_06) в системе Fedora.
Я делаю обновление для некоторого устаревшего кода, и я хотел создать для него тест (используя JUnit). Код используется с Java 1.5. Чтобы предоставить тестовые данные самым быстрым и простым способом, я хотел реализовать простой фиктивный набор данных, расширив интерфейс ResultSet. Проблема в том, что несмотря на то, что мой проект настроен для сборки и тестирования с помощью JDK 1.5:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<fork>true</fork>
<executable>/usr/java/jdk1.5.0_14/bin/javac</executable>
<compilerVersion>1.5</compilerVersion>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- snip some non-jvm configuration -->
<jvm>/usr/java/jdk1.5.0_14/bin/java</jvm>
<forkMode>once</forkMode>
</configuration>
</plugin>
редактор по-прежнему хочет сделать мой класс абстрактным, поскольку считает, что мне не хватает методов, существующих в Java 1.6 ResultSet, но использующих классы, которых нет в Java 1.5 (NClob, RowId и SQLXML).
Мои подключаемые модули компилятора, похоже, настроены правильно — я могу успешно построить и запустить этот тест JUnit, но все мое исходное дерево показывает значки ошибок (эффективно маскируя любые настоящие ошибки). Если я использую функцию «Перейти к источнику» (или «Перейти к объявлению») в операторе импорта ResultSet, это приводит меня к исходному zip-архиву Java 1.6, но метод отвечает «Невозможно выполнить переход к источнику здесь».
Что я пропустил? Как заставить окно редактора NetBeans распознавать, что этот код использует JDK версии 1.5, а не JDK, с которым был запущен NetBeans?
Тиа, Илан