filtrado de recursos en maven
DESCRIPTION
Filtering in mavenTRANSCRIPT
MavenFiltrado de recursos
Filtrado de recursos
Preparado por Jesús Salinas Revelles
Índice del capítulo
‣ Introducción.
‣ Definición de propiedades.
‣ Referencia a propiedades.
‣ Activación del filtrado de recursos.
Filtrado de recursos
Preparado por Jesús Salinas Revelles
Introducción
‣ El filtrado en maven es el mecanismo que permite definir propiedades dentro del proyecto asignándole valores que, posteriormente, podrán ser aplicados en cualquier fichero de configuración del proyecto.
‣ Para manejar con solvencia el filtrado debemos tener claros tres conceptos:
‣ Definición de propiedades: cuál es la sintaxis a utilizar y dónde se deben definir.
‣ Referencia a propiedades: cuál es la sintaxis a utilizar y dónde se pueden utilizar.
‣ Proceso de filtrado: cómo se aplica y cuál es el resultado.
Filtrado de recursos
Preparado por Jesús Salinas Revelles
Introducción
Filtrado de recursos
Preparado por Jesús Salinas Revelles
Definición de propiedades
‣ Maven nos ofrece un conjunto de propiedades predefinidas que vamos a poder utilizar en nuestros proyectos. Como su nombre indica NO debemos definirlas, ya lo han hecho por nosotros.
‣ Propiedades del proyecto maven: project.*
‣ Cualquier cosas dentro del fichero pom.xml puede referenciarse mediante este tipo de propiedad: project.groupId, project.version, project.artifactId, etc.
‣ Propiedades de configuración:
‣ Propiedades definidas en el fichero settings.xml, el fichero de configuración de maven: settings.*
‣ Propiedades asociadas a variables de entorno: env.*
‣ env.PATH, env.HOME, env.JAVA_HOME, env.M2_HOME, etc.
‣ Propiedades asociadas al sistema Java: java.version, java.vendor
Filtrado de recursos
Preparado por Jesús Salinas Revelles
Definición de propiedades
‣ Existen dos estrategias para definir propiedades de usuario:
‣ Definición en un fichero pom.xml.
‣ Las propiedades se definen dentro del elemento properties. El nombre de la propiedad se define en el elemento xml.
‣ En el ejemplo se han definido dos propiedades llamadas jdbc.username y jdbc.password y sus valores son rootUser y xxADB_2.
<project> ...<properties> <jdbc.username>rootUser</jdbc.username> <jdbc.password>xxADB_2</jdbc.password></properties>
...</project>
Filtrado de recursos
Preparado por Jesús Salinas Revelles
Definición de propiedades
‣ Existen dos estrategias para definir propiedades de usuario (cont.):
‣ También se pueden definir en ficheros de properties:
‣ Para tenerlas en cuenta se deben en el fichero pom.xml se debe incluir:
jdbc.url=jdbc:hsqldb:mem:mydb jdbc.username=curso01 jdbc.password=curso01
<build> <filters> <filter>src/main/filters/prueba.properties</filter> </filters> ...
Ruta donde se encuentra la definición de propiedades que se aplicarán en el filtrado.
Filtrado de recursos
Preparado por Jesús Salinas Revelles
Referencia a propiedades
‣ Una vez que se han definido tantas propiedades como sean necesarias, ¿cómo hago referencia a éstas? ¿cuál es la sintaxis que debemos seguir?
‣ Sintaxis:
‣ Ejemplo:
${nombreDePropiedad}
<project> ... <packaging>jar</packaging> <build> <finalName>${project.groupId}-${project.artifactId}</finalName> </build>
</project>
Filtrado de recursos
Preparado por Jesús Salinas Revelles
Referencia a propiedades
‣ Propiedades del proyecto maven:
‣ Propiedades de configuración:
...<dependencies> <dependency> <groupId>${project.groupId}</groupId> <artifactId>sibling-project</artifactId> <version>${project.version}</version> </dependency> </dependencies>...
<settings> <localRepository>/RepositorioPrueba</localRepository>...
${settings.localRepository}
Filtrado de recursos
Preparado por Jesús Salinas Revelles
Referencia a propiedades
‣ Propiedades asociadas a variables de entorno:
‣ Propiedades asociadas al sistema Java:
${env.PATH}${env.HOME}${env.JAVA_HOME}${env.M2_HOME}
${java.version}${java.vendor}${java.home}...${user.name}${user.home}${user.dir}
Filtrado de recursos
Preparado por Jesús Salinas Revelles
Referencia a propiedades
‣ Propiedades de usuario:
‣ Referencia a las propiedades:
<project> ...<properties> <jdbc.username>sa</jdbc.username> <jdbc.password>appfuse</jdbc.password></properties>...</project>
${jdbc.username}${jdbc.password}
Filtrado de recursos
Preparado por Jesús Salinas Revelles
Activación del filtrado de recursos
‣ Para terminar, una vez que sabemos cómo se definen propiedades y cómo se referencian en ficheros de nuestro proyecto, necesitamos saber sobre qué ficheros o carpetas de nuestro proyecto queremos aplicar el filtrado o sustitución de propiedades.
‣ Para que el proceso de reemplazo de variables se produzca, el filtrado debe activarse en el fichero pom.xml del proyecto:
...
<build> <resources> <resource>src/main/resources</resource> <filtering>true</filtering> </resources> </build>
...Ruta de la carpeta en la que se aplica la sustitución de propiedades