maven-2 - springframework - spring security web maven dependency
Renombrando recursos en Maven (5)
Estoy tratando de encontrar una manera de copiar un archivo de recursos a un nuevo nombre en el directorio de destino en una compilación de Maven. Casi todo lo que he encontrado durante la búsqueda sugiere soluciones que involucran múltiples subdirectorios en /src/main/resources
y que seleccionan entre ellos a través de perfiles. Sin embargo, en mi caso, esto no resuelve el problema, es decir, que el archivo que quiero tiene un nombre "mágico".
Básicamente, lo que quiero hacer es /src/main/resources/default.DS_Store
un archivo /src/main/resources/default.DS_Store
en ${project.build.directory}/.DS_Store
. Dado que el archivo .DS_Store
tiene un significado especial en Mac OSX, no es conveniente tener un archivo con ese nombre en el árbol de origen y en el control de versión. Sin embargo, quiero que los datos del archivo estén en el árbol de origen y en el control de versiones, y que se les cambie el nombre al nombre "mágico" durante la compilación.
Estoy empezando a pensar que la hormiga es la única manera de hacer esto automáticamente. ¿Hay alguna forma más fácil?
Ejemplo de uso del complemento de ensamblaje para copiar y / o cambiar el nombre de un archivo:
archivo pom:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.1</version>
<configuration>
<descriptors>
<descriptor>src/main/descriptors/example.xml</descriptor>
</descriptors>
</configuration>
</plugin>
</plugins>
</build>
</project>
Archivo descriptor:
<?xml version="1.0" encoding="UTF-8"?>
<assembly>
<id>example</id>
<formats>
<format>dir</format>
</formats>
<files>
<file>
<source>src/main/resources/something.properties</source>
<outputDirectory>/</outputDirectory>
<destName>something.properties</destName>
</file>
<file>
<source>src/main/resources/something.properties</source>
<outputDirectory>/</outputDirectory>
<destName>something_en.properties</destName>
</file>
</files>
</assembly>
El uso de antrun-maven-plugin lo hace fácil, pero en caso de que busque una manera más perversa que sea compatible con eclipse m2e, entonces puede usar copy-rename-maven-plugin
<plugin>
<groupId>com.coderplus.maven.plugins</groupId>
<artifactId>copy-rename-maven-plugin</artifactId>
<version>1.0.1</version>
<executions>
<execution>
<id>rename-file</id>
<phase>compile</phase>
<goals>
<goal>rename</goal>
</goals>
<configuration>
<sourceFile>${project.build.outputDirectory}/default.DS_Store</sourceFile>
<destinationFile>${project.build.outputDirectory}/.DS_Store</destinationFile>
</configuration>
</execution>
</executions>
</plugin>
Y en caso de que tenga algún comentario o problema con el complemento, puede comunicarse con https://github.com/coderplus/copy-rename-maven-plugin/
Puede evitar la sobrecarga de Ant utilizando el maven.apache.org/plugins/maven-assembly-plugin y el descriptor del ensamblado de archivos .
Tuve el mismo problema al usar el complemento copiar-renombrar-maven-solucionado mi problema
<project>
...
<build>
<plugins>
<plugin>
<groupId>com.coderplus.maven.plugins</groupId>
<artifactId>copy-rename-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<id>copy-file</id>
<phase>generate-sources</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<sourceFile>src/someDirectory/test.environment.properties</sourceFile>
<destinationFile>target/someDir/environment.properties</destinationFile>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Veo 2 opciones para resolver tu problema:
- Use el Maven-Ant-Plugin y defina una tarea para cambiar el nombre de Ant que cambiará el nombre de su archivo solo en la fase de empaquetado, en el directorio de compilación.
- Utilice este complemento dedicado de Maven (no lo probé): http://code.google.com/p/maven-file-rename-plugin/