texto sistema simbolo para msdos comando carpetas cadena buscar batch archivos archivo maven

maven - sistema - find msdos



Búsqueda completa y reemplazo de cadenas en archivos fuente al copiar recursos (2)

Tengo algunos archivos fuente de Java que usan un prefijo de paquete (están emulando algunas clases de JDK). Yo uso estos archivos con el prefijo para ejecutar contra algunas pruebas unitarias. Si pasan las pruebas, quiero producir un archivo jar que contenga los archivos fuente pero con el prefijo del paquete eliminado de todos los archivos java.

Estoy usando maven para compilaciones. ¿Alguien sabe de una manera de hacer esto? Esencialmente, lo que quiero es algo así como la función de filtrado de complementos de recursos, pero que hace una búsqueda y reemplazo adecuados (como: s / my.package.prefix .// g), en lugar de filtrar en $ {vars}.


Esto se puede resolver con el plugin antrun. En primer lugar, las fuentes deben copiarse en el directorio de destino, con:

<build> ... <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.java</include> </includes> </resource> </resources> ... </build>

En segundo lugar, utiliza la tarea de replace del complemento antrun para reemplazar los archivos usando la fase de preparación del paquete

<build> ... <plugin> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <phase>prepare-package</phase> <configuration> <tasks> <replace token= "my.package.prefix." value="" dir="target/classes"> <include name="**/*.java"/> </replace> </tasks> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin> ... </build>

Esto copiará los archivos fuente a destino / clases en la fase de recursos de proceso, realizará una búsqueda y los reemplazará en el directorio destino / clases en la fase de preparación del paquete y finalmente se agitarán en la fase del paquete.