Quiero hacer que mi build Maven falle cuando me olvidé de declarar serialVersionUIDs en una clase Serializable
. Con javac
, eso es fácil:¿Cómo paso los múltiples argumentos de línea de comandos de javac, algunos de los cuales incluyen dos puntos, sin romper el complemento de lanzamiento de Maven?
$ javac -Xlint:serial -Werror Source.java
traducir directamente que a Maven no funciona:
<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>
El compilerArgument
se cita, por lo javac
recibe sólo un argumento, que contiene -Xlint:serial -Werror
, en lugar de -Xlint:serial
y -Werror
como argumentos separados. Así que lee los documentos, y encontrar 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>
Esto se ve raro - el colon hace serial
elemento en el espacio de nombres Xlint
, que no está declarado en cualquier lugar - pero funciona ... hasta que usted quiere hacer una liberar:
$ 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.
Aparentemente, el lector de POM normal maneja los espacios de nombres XML de una forma diferente a la utilizada por el complemento de publicación.
Entonces, ¿cómo paso javac
múltiples interruptores de línea de comandos cuando algunos de esos interruptores contienen caracteres que no son válidos para elementos XML simples, sin romper el complemento de lanzamiento?
no funciona para maven-compilador-plugin 2.4 – yegor256
Eso es interesante. ¿Es un error o un cambio intencionado en el comportamiento? – gustafc
ver [MCOMPILER-62] (http://jira.codehaus.org/browse/MCOMPILER-62) – yegor256