Ich möchte meine Maven Build fehlschlagen lassen, wenn ich vergesse, serialVersionUIDs in einer Serializable
Klasse zu deklarieren. Mit javac
, das ist einfach:Wie übergebe ich mehrere Befehlszeilenargumente von javac, von denen einige einen Doppelpunkt enthalten, ohne Maven Release-Plugin zu brechen?
$ javac -Xlint:serial -Werror Source.java
Direkt dass Maven Übersetzung nicht funktioniert:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<compilerArgument>-Xlint:serial -Werror</compilerArgument>
</configuration>
</plugin>
Die compilerArgument
zitiert wird, so javac
erhält nur ein Argument, mit -Xlint:serial -Werror
, statt -Xlint:serial
und -Werror
als separate Argumente. So lesen Sie die Dokumentation, und finden compilerArguments
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<compilerArguments>
<Xlint:serial />
<Werror />
</compilerArguments>
</configuration>
</plugin>
Das sieht seltsam - der Doppelpunkt macht serial
Element im Xlint
Namespace, der nicht überall erklärt wird - aber es funktioniert ... bis Sie ein tun wollen Mitteilung:
$ mvn release:prepare
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.3.2:prepare (default-cli) on project my-project: Error reading POM: Error on line 58: The prefix "Xlint" for element "Xlint:serial" is not bound.
Anscheinend behandelt der reguläre POM-Reader XML-Namespaces anders als der vom Release-Plugin verwendete.
So wie gehe ich javac
mehrere Befehlszeilenschalter, wenn einige dieser Schalter Zeichen enthalten, die für Normal XML-Elemente nicht gültig sind, ohne die Freigabe-Plugin zu brechen?
für Maven-Compiler-Plugin nicht funktioniert 2.4 – yegor256
Das ist interessant. Ist es ein Fehler oder eine beabsichtigte Verhaltensänderung? – gustafc
siehe [MCOMPILER-62] (http://jira.codehaus.org/browse/MCOMPILER-62) – yegor256