¿Cómo paso varios argumentos de línea de comando de javac, algunos de los cuales incluyen dos puntos, sin romper el complemento de lanzamiento de Maven?

Quiero hacer que mi compilación de Maven falle cuando olvido declarar serialVersionUIDs en unaSerializable clase. Conjavac, eso es fácil:

$ javac -Xlint:serial -Werror Source.java

La traducción directa 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>

loscompilerArgument se cita, entoncesjavac recibe solo un argumento, que contiene-Xlint:serial -Werror, en lugar de-Xlint:serial y-Werror como argumentos separados. Así que lees los documentos, y encuentrascompilerArguments:

        <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 haceserial elemento en elXlint espacio de nombres, que no se declara en ninguna parte, pero funciona ... hasta que quiera hacer un lanzamiento:

$ 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 POM regular maneja los espacios de nombres XML de una manera diferente a la utilizada por el complemento de lanzamiento.

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?

Respuestas a la pregunta(4)

Su respuesta a la pregunta