El código fuente de filtrado todavía era complicado hace algunos meses, pero ahora hay un complemento estándar en el proyecto MOJO. Ahora puede hacer eso con una declaración de complemento clásica.
Para filtrar el código fuente (por ejemplo, cuando desea tener una constante en su código Java para recuperar la versión del proyecto o artifactId), ahora debería usar el templating-maven-plugin.
Ponga su código que debe ser filtrada durante la construcción bajo src/main/java-templates
como se haría normalmente bajo src/main/java
de fuentes no filtradas. Use ${project.version}
o cualquier propiedad que provenga del POM en su código.
sólo hay que poner algo como:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>templating-maven-plugin</artifactId>
<version>1.0-alpha-3</version> <!-- Be sure to use the last version. Check on the website's plugin -->
<executions>
<execution>
<id>filter-src</id>
<goals>
<goal>filter-sources</goal>
</goals>
</execution>
</executions>
</plugin>
hacerse :-). El código que coloca dentro de src/main/java-templates
se filtra y se agrega a classpath.
El uso es muy sencillo (ver example here).
Esto respeta mucho mejor la idea de convención sobre la configuración de Maven. Básicamente estás reemplazando decenas de líneas XML y algunos hacks para hacer algo de manera limpia.
Nota al margen: esto funciona bien con Eclipse, por ejemplo.
Hola, traté de seguir su respuesta anterior, pero cuando importo el proyecto a eclipse-kepler y habilito la compilación automática de eclipse, me queja de que no puede encontrar las clases en 'src/main/java-templates' src dir. ... también mirando la ruta de compilación de la fuente del proyecto, el directorio 'src/main/java-templates' src no está allí ... no estoy seguro si debería estar allí. Solo mencionar que el proyecto se compila con éxito cuando ejecuto 'mvn install' desde eclipse, pero quiero que eclipse no me queje y debe seleccionar automáticamente la fuente procesada de' target/generated-sources/java-templates' o quizás I ' ¿Estoy mal? –
src/main/java-templates no es una carpeta de origen, y no debe configurarse como una dentro del IDE. Hacer esto chocará con el directorio filtrado target/generated-sources/java-templates (que debe mostrarse como una carpeta fuente en Eclipse, que no debe editar). –
Para la actualización automática dentro de Eclipse, creo que le falta algo de configuración M2E, intente agregar https://gist.github.com/Batmat/9529785 en su pom.xml. Funciona mejor? –