2015-11-05 3 views
-2

Мне нужно создать 2 профиля maven, где я могу установить два разных системных свойства. Эти профили предназначены только для установки системного свойства и не связаны с каким-либо плагином.Как создать профиль maven для установки системного свойства

как

<profile> 
    <id> profile1 to set system property 1</id> 
    .... set system property1 
</profile> 
<profile> 
    <id> profile2 to set system property 2</id> 
    .... set system property2 
</profile> 
+0

Возможный дубликат [Установка системной переменной в профиле maven] (http://stackoverflow.com/questions/25604969/setting-a-system-variable-within-a-maven-profile) – kryger

ответ

3

Вы можете, но это зависит от того, что вам это нужно. Это наиболее распространенный способ сделать это:

<profiles> 
    <profile> 
     <id>profile-1</id> 
     <build> 
     <plugins> 
      <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>properties-maven-plugin</artifactId> 
      <version>1.0-alpha-2</version> 
      <executions> 
       <execution> 
       <goals> 
        <goal>set-system-properties</goal> 
       </goals> 
       <configuration> 
        <properties> 
        <my-prop>Yabadabadoo!</my-prop> 
        </properties> 
       </configuration> 
       </execution> 
      </executions> 
      </plugin> 
     </plugins> 
     </build> 
    </profile> 
    </profiles> 

, но это только устанавливает системное свойство во время выполнения Maven, поэтому, если вы хотите (например) этот класс, чтобы забрать его:

package org.example; 

public class App { 
    public static void main(String[] args)  { 
     System.out.println("-->" + System.getProperty("my-prop")); 
    } 
} 

вам нужно запустить его с mvn -P profile-1 compile exec:java -Dexec.mainClass=org.example.App и даст следующий результат:

[INFO] --- exec-maven-plugin:1.4.0:java (default-cli) @ sys-prop --- 
-->Yabadabadoo! 

Запуск его без compile цели даст вам null, поскольку плагин exec не связан ни с одной фазой сборки в этом случае.

Но если вам нужны системные свойства для (скажем) модульных тестов, тогда вам нужен плагин surefire.

Смежные вопросы