Как мне скомпилировать тест JUnit с Maven, который использует API компилятора Java? - PullRequest
1 голос
/ 12 октября 2011

Запуск компилятора Java из теста JUnit довольно просто с использованием API компилятора Java . Тест проверяет, что я могу загрузить новый код, используя временный загрузчик классов, и что очистка работает, и т. Д.

Моя проблема - компиляция и / или запуск теста с использованием Maven .

Если я добавляю компилятор Java с использованием зависимости, я должен установить область действия на test. Если я сделаю это, tools.jar будет добавлен в путь к классам при компиляции тестов, что означает, что на пути к классам будет два Java-компилятора.

То же самое относится и к области действия runtime, но это также добавит компилятор Java к моему артефакту, что сделает его утечкой. Все остальные области еще хуже.

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 13 октября 2011

Вы уверены, что вам вообще нужна зависимость компилятора java? Без какой-либо специальной (компиляторной) зависимости Java Compiler API работает для меня (так как он является частью JDK).

Вы можете установить целевую версию ВМ с помощью параметра options, равного getTask, например:

final List<String> options = new ArrayList<String>();
options.add("-target");
options.add("1.3");
options.add("-source");
options.add("1.3");
...