2013-09-06 5 views
13

Gibt es eine Möglichkeit, Compiler-Argumente mit einer Befehlszeile an Maven übergeben? Ich weiß, dass ich in compiler-plugin angeben kann, aber ich möchte Xlint von der Befehlszeile ausführen. So versuchte ich etwas wieWie Maven-Projekt mit Xlint kompilieren

mvn clean install -DskipTests=true -DcompilerArgument=-Xlint:deprecation 

aber ohne Erfolg.

Antwort

18

Sie können einen Compiler-Plugin wie folgt definieren:

<plugin> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <configuration> 
     <compilerArgument>${compilerArgument}</compilerArgument> 
    </configuration> 
</plugin> 

Dann Parameter in der Befehlszeile übergeben:

mvn -DcompilerArgument=-Xlint:deprecation compile 

Wenn Sie nicht -DcompilerArgument passieren kann, wird es nicht die Build brechen, weil 'compilerArgument' im Compiler-Plugin-Argument ist leer und wird ignoriert.

+0

Nicht schlecht, aber ich hatte gehofft, dass es einige Standardparameter geben wird, so dass ich meine 'pom.xml' intakt lassen kann. Aber nette Abhilfe, danke –

+0

Leider hat keiner der ['compile: compile' Parameter] (http://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#Parameter_Details) für zusätzliche Argumente eine Standardbenutzereigenschaft – Joe

22

Aus diesem konkreten Fall (deprecation Warnungen) gibt es tatsächlich ist ein property which can be used from the command line:

mvn clean install -Dmaven.compiler.showDeprecation=true 

Im Gegensatz zur compilerArgument Lösung, dies funktioniert auch, wenn der Compiler in dem Maven-Verfahren, nicht nur dann, wenn Verwenden von fork = true.

Eine ähnlich nützliche Eigenschaft ist maven.compiler.showWarnings.

+0

Danke, das sieht wirklich gut aus –