2012-12-25 15 views
15

i ben .profile bunu ayarlayabilirsiniz farkındayım, ama pom aynı hile yapabilirsiniz acaba bir pom dosyasında System.getenv("APP_HOME") tarafından dahili erişilebilir başka bir deyişle bir ortam değişkeni (?mvn pom içinde bir ortam değişkeni nasıl ayarlanır?

APP_HOME=/path/home 

ayarlayabilirsiniz nasıl. aşağıdaki bmargulies önerisine Başına

i güzelliğinde gibi şans olmadan

<build> 
    <finalName>KvpStore</finalName> 
    <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
       <encoding>UTF-8</encoding> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.12.4</version> 
      <configuration> 
       <includes> 
        <include>**/*Test*.java</include> 
       </includes> 
       <environmentVariables> 
        <APP_NAME>blah_blah</APP_NAME> <------------------------ 
       </environmentVariables> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

cevap

1

documentation of the maven-surefire-plugin gösteri örnekler ve sistem özelliklerini kurma böyle şeyler nasıl yapılacağı anlatılmaktadır.

<configuration> 
    <systemPropertyVariables> 
    <propertyName>propertyValue</propertyName> 
    <buildDirectory>${project.build.directory}</buildDirectory> 
    [...] 
    </systemPropertyVariables> 
</configuration> 

O bunları kullanmak basittir çünkü, ortam değişkeninin yerine bunları kullanmak için daha iyi olabilir, env doğru kurulum için gerekli değişken ve cmd.exe'yi neden ve jvm onları çalışma almak için yeniden başlatılmalıdır.

<includes> 
<include>**/Test*.java</include> 
<include>**/*Test.java</include> 
<include>**/*TestCase.java</include> 
</includes> 
+25

OP, Java sistem özellikleri için env vars istemiştir. – bmargulies

+0

Biliyorum, ancak env değişkenleri sistem özelliklerinden daha fazla sorun çıkarır. – khmarbaise

+1

Sanırım env vars'ı gerçekten okuyan süreçleri başlatıyor. – bmargulies

26

Bazı eklentileri aşağıdaki çalıştı, bunları belirlemenize olanak sağlar. hiçbir şekilde pom içinde, genel olarak, var.

Elbette ki doktorun belgesi here'dur. Surefire, testlerin yürütme süresi boyunca başka bir şey için değil, ortam değişkenlerini ayarlayacaktır. Ve emin ateş çatalı yapmalısın. yapılandırmada

...

<configuration> 
    <forkMode>always</forkMode> 
    <environmentVariables> 
    <var1>val1</var1> 
    </environmentVariables> 
</configuration> 
+0

Hmm .. çalışmak görünmüyor:

testler için içerir yapılandırmak maven-surefire-plugin zaten aşağıdaki kusurlarının olması neden gerekli değildir. Anahtarın adı mu? – JAM

+1

Neler olup bittiğini kontrol etmek için mvn -X kullanın. – bmargulies

+0

Bunu denemeden önce cmd.exe'yi yeniden başlattınız mı? Komut satırından mı yoksa Eclipse'den mi arıyorsun? – khmarbaise

İlgili konular