2013-01-20 33 views
12

Örneğin, AAA bir ortam değişkeni varsa${env:AAA} ayarına ve böyle bir ortam değişkeni yoksa başka bir sabit değere sahip olmak istiyorum.Maven'de koşullu özellikler nasıl tanımlanır?

Nasıl maven 2'de yapabilirim?

+0

Yani bir özelliği koşullu olarak ayarlamak istersiniz? –

cevap

8

Görünüşe ... Eğer activate a profile conditionally sanki

<profiles> 
    <profile> 
    <activation> 
     <property> 
     <name>environment</name> 
     <value>test</value> 
     </property> 
    </activation> 
    ... 
    </profile> 
</profiles> 
profil ortam değişkeni aşağıdaki komutu olarak değer test için tanımlandığında aktive olacaktır

:

mvn ... -Denvironment=test

+0

Anlamadım. Maven'in mülk şartlarının olmadığı anlamına mı geliyor? 10 mülküm varsa ve her birini çevreye yaymaya izin vermek istiyorsam, kaç tane profil tanımlamalıyım? – mark

+0

Yapı sisteminize bağlıdır. 10 özellik karşılıklı olarak özelse, o zaman 10 profili tanımlamanız gerekir. Ancak, bu durumda mantığınızı gözden geçirmenizi öneriyorum. – hd1

+1

Bu kabul edilen yanıt – thermz

6

Sistem özelliğinin kabul edilemez olması durumunda, POM dosyanızdaki özelliği kolayca tanımlayabilir ve gerektiğinde geçersiz kılabilirsiniz:

<project> 
... 
    <properties> 
    <foo.bar>hello</foo.bar> 
    </properties> 
... 
</project> 

POM'unuzdaki bu yeri, ${foo.bar} numaralı belgeye başvurarak referans alabilirsiniz. Sen maven-antrun-eklentisi kullanarak koşullu bir özelliği ayarlayabilirsiniz

mvn -Dfoo.bar=goodbye ... 
3

: Komut satırında geçersiz kılmak için, sadece yeni bir değer iletin. Örnek ayarı install.path + değeri yankılanıyor +

<plugin> 
    <!-- Workaround maven not being able to set a property conditionally based on environment variable --> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.8</version> 
    <executions> 
     <execution> 
      <phase>validate</phase> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      <configuration> 
       <exportAntProperties>true</exportAntProperties> 
       <target> 
        <property environment="env"/> 
        <condition property="install.path" value="${env.INSTALL_HOME}" else="C:\default-install-home"> 
         <isset property="env.INSTALL_HOME" /> 
        </condition> 
        <echo message="${install.path}"/> 
       </target> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 
+0

Başka bir 'maven-antrun-plugin' içinde' $ {install.path} 'kullanmayı denerseniz, aynı sürümleri olması gerektiğini unutmayın. –

İlgili konular