Как передать опции «-J» в javac через Maven?

У меня есть проект Java, который построен с использованием Maven. Я хотел бы добавить параметры в командную строку "javac" - в частности, я хочу передать несколько параметров "-J".

Обычно я бы делал что-то вроде этого:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <compilerArgument>-J-Xdebug</compilerArgument>
        <compilerArgument>-J-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005</compilerArgument>
    </configuration>
</plugin>

Однако, когда я пытаюсь это сделать, я получаю ошибки в виде:

[ERROR] Failure executing javac,  but could not parse the error:
javac: invalid flag: -J-Xdebug
Usage: javac <options> <source files>
use -help for a list of possible options

При ближайшем рассмотрении кажется, что maven-compiler-plugin записывает все аргументы компилятора в файл опций и вызывает javac как 'javac @optionfile'. Согласно официальной документации для javac на http://docs.oracle.com/JavaSE /6 /Docs /TechNotes /инструменты /Solaris /javac.html :

  

@argfiles       Один или несколько файлов со списком параметров и исходных файлов. Опции -J не разрешены в этих файлах.

Похоже, что опция в maven-compiler-plugin не работает - она ​​хочет использовать arg-файлы, arg-файлы не могут содержать нужные мне параметры.

Я также видел некоторые предложения использовать карту вместо этого - однако, когда я попробовал, это дало аналогичные результаты.

Есть ли другие варианты?

9 голосов | спросил Richard Downer 17 FebruaryEurope/MoscowbSun, 17 Feb 2013 16:09:19 +0400000000pmSun, 17 Feb 2013 16:09:19 +040013 2013, 16:09:19

1 ответ


0

Плагин компилятора позволяет вам укажите местоположение jdk , чтобы вы могли использовать что-то вроде этого:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.0</version>
    <configuration>
      <verbose>true</verbose>
      <fork>true</fork>
      <executable><!-- path-to-javac-invoking-script --></executable>
      <compilerVersion>1.3</compilerVersion>
    </configuration>
  </plugin>

и предоставить ему путь к файлу script /bat, который передаст все аргументы в настоящий javac вместе с вашими дополнительными аргументами?

РЕДАКТИРОВАТЬ - исходная проблема была исправлена ​​в плагин компилятора 2.4+ и теперь он должен работать без моего обходного пути

ответил radai 17 FebruaryEurope/MoscowbSun, 17 Feb 2013 16:18:49 +0400000000pmSun, 17 Feb 2013 16:18:49 +040013 2013, 16:18:49

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132