en mi pom He agregado el exec-maven-plugin para llamar a una clase java que generará un archivo. Esta clase requiere que algunos parámetros pasen al método principal, uno de ellos es la ubicación de un archivo de entrada (fuera del proyecto). Hasta ahora he estado utilizando una ruta relativa para este que funciona muy bien:Maven - pasar argumento para usar en exec-maven-plugin
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.laco.projectmaster.util.LanguageGenerator</mainClass>
<arguments>
<argument>../PM-Config/dev/PMLanguage.xls</argument>
<argument>PM4.0</argument>
<argument>${project.build.outputDirectory}/com/laco/projectmaster/props/resources</argument>
<argument>ProjectMaster</argument>
<argument>Created during maven build (POM Version: ${pom.version})</argument>
</arguments>
</configuration>
</plugin>
Ahora estoy empezando a utilizar para instalar Hudson/paquete y desplegar las guerras y no puedo ya utilizar esta ruta relativa. Sencilla pensé, sólo tiene que pasar la ubicación del archivo de entrada cuando se invoca como experta:
mvn paquete limpio -Dlangdir = C:/somedir
y luego alterar el POM como:
<argument>${langdir}/PMLanguage.xls</argument>
Sin embargo, este parámetro simplemente se ignora aquí. La ruta que recibe la clase principal como argumento se convierte en null/PMLanguage.xls. El parámetro en sí está disponible en maven, probé con éxito utilizando un eco en el plugin antrun. La ruta correcta fue repetida.
¿Los parámetros que pasa a maven no están disponibles por defecto, sin importar dónde los referencia en el pom?
gracias por cualquier ayuda,
Stijn
Pascal, lo siento mucho pero parece que desperdicié tu precioso tiempo. No puedo explicarlo pero cuando vuelvo a ejecutar el empaque ahora funciona bien. No cambié nada mientras tanto, así que no entiendo por qué no funcionó ayer. Entonces, lo siento pero gracias. –