2011-01-28 4 views
6

ho molto semplice descrittore di Maven che ha definito alcune proprietà:Maven proprietà sovraccarico

<?xml version="1.0"?> 
<project 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
    http://maven.apache.org/xsd/maven-4.0.0.xsd" 
    xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

    <properties> 
    <it.port>8080</it.port> 
    </properties> 

</project> 

posso ignorare it.port proprietà con il comando:

$ mvn -Dit.port=8181 verify 

Ma seguente comando non funziona come previsto:

$ MAVEN_OPTS="-Dit.port=8181" mvn verify 

Questo sistema di passaggio è variabile per la JVM ma non è autorizzato a eseguire l'override s proprietà e valore predefinito assegnato al test (8080). Il problema originale è che TeamCity (out server CI) passa le variabili di sistema alla JVM in MAVEN_OPTS, quindi la modifica della proprietà non funziona.

È possibile sovrascrivere le proprietà di manutenzione con la variabile di ambiente MAVEN_OPTS?

risposta

11

No, non è possibile. È possibile:

  • Uso settings.xml sul computer locale per specificare la proprietà
  • Utilizzare un profilo nel progetto POM
  • Usa -D direttamente sulla riga di comando.