2012-09-16 12 views
37

W NetBeans 7.2, mam problem ze znalezieniem sposobu kompilacji przy użyciu -Xlint: niezaznaczone w projekcie Maven. W ramach projektu Ant można zmienić flagi kompilatora, przechodząc do Właściwości projektu -> Kompilowanie, ale projekty Maven nie mają takiej opcji.Jak skompilować przy użyciu -Xlint: niezaznaczone w projekcie Maven?

Czy istnieje sposób konfiguracji IDE do kompilacji z takimi flagami przy użyciu Maven?

+0

Jeśli chcesz przekazać wiele argumentów, można otrzymywać błąd z '< compilerArgument> '. Zobacz tę odpowiedź dla alternatywnego ... ': https://stackoverflow.com/a/23743186/257299 – kevinarpe

Odpowiedz

57

Domyślam się, że możesz ustawić argumenty kompilatora w twoim pom.xml. Proszę odnieść to http://maven.apache.org/plugins/maven-compiler-plugin/examples/pass-compiler-arguments.html

<compilerArgument>-Xlint:unchecked</compilerArgument> 
+0

Stworzyłem mały program testowy, który powinien generować ostrzeżenie o korzystaniu z statyczne metody, ale nie wydaje mi się, aby zmusić specjalistę do generowania jakichkolwiek ostrzeżeń na ten temat. Oto przykładowy program i plik pom zamieszczone tutaj -> https://gist.github.com/influenza/5145598 –

+0

@RonDahlgren: dlaczego miałbyś oczekiwać, że to ostrzeżenie? – haylem

+0

@haylem - Uzyskanie dostępu do statycznego pola lub metody powinno wygenerować ostrzeżenie z włączoną opcją. To jest szczegóły używanego javac, ale jest to powszechne: http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fpreferences%2Fjava%2Fcompiler % 2Fref-preferences-errors-warnings.htm i http://pic.dhe.ibm.com/infocenter/dstudio/v3r1/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fpreferences% 2Fjava% 2Fcompiler% 2Fref-preferences-errors-warnings.htm –

21

Chcę rozwinąć @ odpowiedź Nishant za. Znacznik compilerArgument musi wejść do tagu plugin/configuration. Oto pełny przykład:

<plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.3</version> 
    <configuration> 
     <source>1.8</source> 
     <target>1.8</target> 
     <testSource>1.8</testSource> 
     <testTarget>1.8</testTarget> 
     <compilerArgument>-Xlint:unchecked</compilerArgument> 
    </configuration> 
    </plugin> 
</plugins> 
0

Informacja o pliku pom jest na miejscu. Miałem dodatkowe wyzwanie związane z budowaniem cudzego projektu Maven w Jenkins i brakiem dostępu do repozytorium plików pom.

stworzyłem etap pre-build, aby wstawić parametr kompilatora do pliku pom po pobraniu go z git, na przykład

sed -i 's|/target> *$|/target>\n<compilerArgument>\n-Xlint:deprecation\n</compilerArgument>|' $WORKSPACE/pom.xml 
Powiązane problemy