Curso Maven

 Perfiles de configuracion


En determinadas circunstancias hay configuración que requiere ser establecida de forma dinámica:

  • Repositorios: <repositories />
  • Build cycle: <build />
  • Dependencias: <dependencies />
  • Propiedades de configuración: <properties />

Ejemplo: Veamos un ejemplo de definición de configuración de acceso base de datos considerando que en el entorno de desarrollo se usa MySQL y en el entorno de producción se usa Oracle.

<profiles>
  <profile>
    <id>entorno-dev</id>
    <dependencies>
      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.15</version>
      </dependency>
    </dependencies>
    <properties>
        <jdbc.url>jdbc:mysql://127.0.0.1:3306/db</jdbc.url>
        <jdbc.username>root</jdbc.username>
        <jdbc.password>contrasenha</jdbc.password>
    </properties>
  </profile>
   <profile>
    <id>entorno-pro</id>
    <dependencies>
      <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc</artifactId>
        <version>6</version>
      </dependency>
    </dependencies>
    <properties>
        <jdbc.url>jdbc:oracle:thin:@127.0.0.1:1521:ora</jdbc.url>
        <jdbc.username>system</jdbc.username>
        <jdbc.password>contrasenha</jdbc.password>
    </properties>
  </profile>
</profiles>

La activación de estos perfiles puede realizarse de múltiples formas:

  • Activación expresa
    • Incluyendo el ID de profile dentro de un marca activeProfile en el settings.xml. Por ejemplo: Para el perfil de ID entorno-dev
      <activeProfiles>
      <activeProfile>`entorno-dev</activeProfile>
      </activeProfiles>
      
  • Valores de cierta variable: Por ejemplo, usando la variable de entorno db$> mvn clean install -Ddb=mysql
    <profile>
      <id>mysql</id>
      <activation>
        <property>
          <name>db</name>
          <value>mysql</value>
        </property>
      </activation>
      ...
    </profile>
    
  • Versión de JDK (activar en caso de JDK 1.6)
    <profile>
      <activation>
        <jdk>1.6</jdk>
      </activation>
      ...
    </profile>
    
  • Versión de JDK (activar en caso de JDK 1.5, 1.6, 1.7)
    <profile>
      <activation>
        <jdk>[1.5,1.8)</jdk>
      </activation>
      ...
    </profile>
    
  • Familia de sistema operativo: macunixwindows, etc.
    <profile>
      <activation>
        <os>
          <name>Windows XP</name>
          <family>Windows</family>
          <arch>x86</arch>
          <version>5.1.2600</version>
        </os>
      </activation>
      ...
    </profile>
    

Comentarios

Entradas populares de este blog

¿Como llamar una función del componente padre desde un componente hijo, en angular 8?

Frontend: Suscripciones y Observables con Angular 8

Enrutado con lazy loading en angular 8