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
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?
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
.
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/
<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)
- 1. Ereditari profili Maven
- 2. Maven Super POM
- 3. Come condividere i frammenti POM tra diverse POM
- 4. Maven non trova genitore POM
- 5. Dipendenze aggiornamento Maven in POM
- 6. Maven: genitore non risolvibile POM
- 7. lettura Maven Pom XML in Python
- 8. Maven Crea profili multipli in una volta
- 9. Come visualizzare la gerarchia POM Maven?
- 10. Puoi ereditare la versione dal POM padre in Maven?
- 11. convert maven pom a gradle build
- 12. Impostazione dipendenze librerie Tomcat in Maven POM
- 13. Dipendenze Maven POM nel file ivy.xml
- 14. Accesso alle variabili Maven Pom dal file delle proprietà
- 15. Efficace-pom una fusione tra super pom e applicazione POM
- 16. Ottenere un'app Play/SBT per dipendere da un Maven POM
- 17. Come specificare i profili attivi in Maven3
- 18. Come definire la versione genitore in Maven come proprietà?
- 19. Uso dei profili maven per controllare l'esecuzione di build
- 20. progetto multi-modulo maven con layout padre pom e svn
- 21. Dividi il mio maven pom in diversi file
- 22. Maven: aggiunta di un riferimento a un progetto padre pom
- 23. Come creare un progetto dal file pom maven
- 24. Come posso aggiungere metadati a un maven pom
- 25. maven-scala-plugin che dà errore file pom
- 26. Eclipse + Maven non può POM aperta anche se esiste
- 27. Test in esecuzione con tipo di imballaggio Maven "pom"
- 28. Creazione di più profili Maven per un singolo lavoro Jenkins
- 29. Come dire a Maven dove cercare localmente le POM padre?
- 30. La funzione documento XSLT restituisce risultati vuoti su Maven POM
perché ho molti profili e ogni profilo contiene molte proprietà e il file pom sta diventando così grande –
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
url per tale approccio per favore in una risposta separata sarebbe preferibile? –