2011-11-16 12 views
5

C'è un modo per definire i miei profili Maven al di fuori del file POM ma non in .m2/settings.xml?
voglio definire loro in un XML separato file di all'interno l'applicazione (modo di lavorare in modo efficiente con Maven 2 e 3) perché sto usando Maven 2 e intendo passare a 3 presto.Definire i profili Maven fuori POM

risposta

1

Fino a Maven 2.2.1 è possibile definire i profili nel file profiles.xml come file separato ma con Maven 3 questa opportunità è stata rimossa. La domanda è perché hai bisogno di un file separato per i profili?

+4

perché ho molti profili e ogni profilo contiene molte proprietà e il file pom sta diventando così grande –

+0

Che dire dell'utilizzo di un super-pom che contiene i profili, supponendo che si applicherebbero a diversi tipi di progetto? I tuoi poms di progetto possono quindi utilizzare quel genitore principale senza dover ridefinire tutto questo comportamento comune. – RonU

+0

url per tale approccio per favore in una risposta separata sarebbe preferibile? –

1

Si consiglia di passare attraverso this maven documentation sui profili di generazione, che descrive i tipi di profili e come ciascuno può essere utilizzato.

Come ho visto, i profili non possono essere definiti al di fuori di pom.xml o settings.xml, se si desidera utilizzare maven 3.

0

Stavo migrando di recente un'applicazione a maven3 da maven2. Con Maven 3 non è possibile avere profili esterni. Ma ciò che si può fare è avere file di proprietà esterni. Ciò può essere ottenuto da Maven-proprietà-plugin

<plugin> 
<groupId>org.codehaus.mojo</groupId> 
<artifactId>properties-maven-plugin</artifactId> 
<version>1.0-alpha-2</version> 
<executions> 
    <!-- Associate the read-project-properties goal with the initialize phase, 
    to read the properties file. --> 
    <execution> 
    <phase>initialize</phase> 
    <goals> 
    <goal>read-project-properties</goal> 
    </goals> 
    <configuration> 
    <files> 
    <file>../com.tak/build.properties</file> 
    </files> 
    </configuration> 
    </execution> 
</executions> 
</plugin> 

Così qui mi hanno spiegato come fare http://programtalk.com/java/migrate-from-maven2x-to-maven3x/

0
<profiles> 
    <profile> 
     <id>dev</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <properties> 
      <build.profile.id>dev</build.profile.id> 
     </properties> 
    </profile> 
    <profile> 
     <id>prod</id> 
     <properties> 
      <build.profile.id>prod</build.profile.id> 
     </properties> 
    </profile> 
    <profile> 
     <id>test</id> 
     <properties> 
      <build.profile.id>test</build.profile.id> 
     </properties> 
    </profile> 
</profiles> 

e aggiungere un filtro

<filters> 
    <filter>src/test/resources/${build.profile.id}/config.properties</filter> 
</filters> 

e aggiungere qualsiasi directory (dev, prod, test)

Problemi correlati