java - mediante - spring mvc 4 tutorial español
Compilando solo archivos seleccionados en Maven (3)
Aplicación sencilla con 3 clases.
com/company/Obj1.java
com/company/Obj2.java
com/company/inner/Obj3.java
build
en pom.xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<includes>
<include>com/company/inner/*.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
Resultado: se compila 1 clase.
Y cualquier combinación de incluye está funcionando bien.
o te refieres a otra cosa?
Quiero compilar solo los archivos o directorios seleccionados (incluidos los subdirectorios) dentro del directorio de origen. Estaba bastante seguro de que puedo hacer esto usando <includes>
de la configuración de maven-compiler-plugin
, pero parece que no funciona como esperaba, ya que aún compila todas las clases en target/classes
. Lo que es realmente extraño, la salida de Maven sugiere que la configuración realmente hace su trabajo, porque con:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<includes>
<include>com/example/dao/bean/*.java</include>
</includes>
</configuration>
</plugin>
Yo tengo:
[INFO] Compiling 1 source file to c:/Projects/test/target/classes
pero sin la configuración del compilador tengo:
[INFO] Compiling 14 source file to c:/Projects/test/target/classes
En ambos casos, sin embargo, las 14 clases se compilan en target/classes
como mencioné. ¿Puede explicar eso o sugerir otra solución para compilar solo los archivos seleccionados?
No tuve dificultades para incluir o excluir archivos para compilar con el compilador 2.5.1
compilador de 2.5.1
. Here está el proyecto ficticio que usé para este propósito. Quizás el patrón de include
que usas es diferente.
maven-compiler-plugin usando notación de inclusión / exclusión similar a Ant. Puedes ver ejemplos en la documentación de Ant. Ant FileSet Type
Si desea incluir solo archivos de un directorio, necesita escribirlo como lo hizo:
<include>com/example/dao/bean/*.java</include>
Para incluir también subdirectorios de ruta, será:
<include>com/example/dao/bean/**/*.java</include>