Home > Maven > Usare i profili e il filtering di Maven

Usare i profili e il filtering di Maven

In questo tutorial spiegherò come customizzare il build di Maven con configurazione specifiche dell’ambiente di destinazione.
Questo è reso semplice grazie all’uso dei profili e del filtering di Maven.

Per prima cosa, aggiungiamo i profili e la proprietà ‘env’* al pom.xml:

<properties>
<env>local</env>
</properties>
<profiles>
<profile>
<!-- per lo sviluppo in locale -->
<id>local</id>
<!-- lasciare vuoto: è il profilo di default! -->
</profile>
<profile>
<!-- per il continuous integration server -->
<id>ci-server</id>
<properties>
<env>ci-server</env>
</properties>
</profile>
<profile>
<!-- per il server di collaudo -->
<id>collaudo</id>
<properties>
<env>collaudo</env>
</properties>
</profile>
</profiles>

* L’uso del proprietà ${env} è del tutto una scelta personale.;

Abilitiamo il filtering sulla directory delle risorse o/e sulla dir delle risorse di test.

 <resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
.....
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</testResource>
</testResources>

Aggiungiamo il path del file di properties del filtro.

<project ...
<build>
<filters>
<filter>src/test/filters/filter-${env}.properties</filter>
</filters>
...

Creiamo i file di properties per i nostri ambienti:

src/test/filters/filter-local.properties

jdbc.pool=local_database
...

src/test/filters/filter-ci-server.properties

jdbc.pool=ci-server_database
...

src/test/filters/filter-collaudo.properties

jdbc.pool=collaudo_database
...

Apriamo la definizione dei connection-pool e sostituiamo il pool-name con la chiave ${jdbc.pool}

<resources>
<jdbc-resource jndi-name="jdbc/test-ds" pool-name="${jdbc.pool}" />

<jdbc-connection-pool name="local_database"
datasource-classname="org.apache.derby.jdbc.EmbeddedDataSource"
res-type="javax.sql.DataSource" ping="true">

<property name="DatabaseName" value="memory:testdb"/>
<property name="ConnectionAttributes" value="create=true" />
<property name="DatabaseName" value="memory_derby" />
<property name="Password" value="" />
<property name="User" value="" />
</jdbc-connection-pool>

<jdbc-connection-pool name="ci-server_database"
is-isolation-level-guaranteed="false"
datasource-classname="org.apache.derby.jdbc.ClientDataSource"
res-type="javax.sql.DataSource">
<property name="PortNumber" value="1527"></property>
<property name="Password" value=""></property>
<property name="User" value=""></property>
<property name="serverName" value="localhost"></property>
<property name="DatabaseName" value="sun-appserv-samples"></property>
<property name="connectionAttributes" value=";create=true"></property>
</jdbc-connection-pool>

<jdbc-connection-pool name="collaudo_database"
datasource-classname="org.postgresql.ds.PGConnectionPoolDataSource"
res-type="javax.sql.ConnectionPoolDataSource" description="javax.sql.XADataSource javax.sql.ConnectionPoolDataSource">
<property name="User" value=""></property>
<property name="DatabaseName" value="coll-db"></property>
<property name="Password" value=""></property>
<property name="ServerName" value="localhost"></property>
<property name="PortNumber" value="5432"></property>
</jdbc-connection-pool>
</resources>

Non resta che buildare, abilitando il profilo

mvn groupId:artifactId:goal -P local

Risorse:
A Maven2 multi-environment filter setup
Maven Profile Best Practices
Maven Filtering
Introduction to Build Profiles 

Categorie:Maven
  1. Non c'è ancora nessun commento.
  1. ottobre 15, 2016 alle 15:43

Lascia un commento

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: