2013-02-17 11 views
9

Mam projekt Java, który jest zbudowany przy użyciu Maven. Chciałbym dodać opcje do wiersza poleceń "javac" - w szczególności chcę przekazać kilka opcji "-J".Jak przekazać opcje "-J" do javac poprzez Maven?

Więc normalnie bym zrobił coś takiego:

<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> 

Jednak gdy próbuję to otrzymuję błędy w postaci:

[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 

Przy bliższym badaniu, wydaje się, że Maven-compiler- plugin zapisuje wszystkie argumenty kompilatora do pliku opcji i wywołuje javac jak "javac @optionfile". Według oficjalnej dokumentacji javac w http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/javac.html:

@argfiles Jeden lub więcej plików, które zawiera opcje i pliki źródłowe. Opcje -J nie są dozwolone w tych plikach.

Wygląda na to, że opcja w wtyczce maven-compiler nie zadziała - chce używać plików arg, pliki arg nie mogą zawierać żądanych opcji.

Widziałem również kilka sugestii, jak korzystać z mapy - jednak to miało podobne wyniki, gdy próbowałem.

Czy są jeszcze jakieś opcje?

+2

wygląda jakbyś hit znany problem - http://jira.codehaus.org/browse/MCOMPILER-129 – radai

Odpowiedz

4

Wtyczka kompilator pozwala na specify the location of the jdk, więc można używać coś takiego:

<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> 

i dostarczyć je ze ścieżką do skryptu pliku/BAT, które przechodzą wszystkie argumenty wraz z rzeczywistym javac wraz z Twoimi dodatkowymi argumentami?

EDIT - the original issue została ustalona w kompilatora plugin 2.4+ i to powinno działać tylko teraz bez mojego obejście

+0

Cóż, mogę potwierdzić, że działa ... to na pewno sposób obejścia problemu, ale brakuje mu poprawienia błędów i czekania na nową wersję wtyczek, to zadziała :) –

+0

@RichardDowner - nie zapytałeś za piękne ;-) – radai

Powiązane problemy