2012-11-29 40 views
0

我使用maven的码头撑着如下:如何添加环境变量Maven的码头,插件

<plugin> 
    <groupId>org.mortbay.jetty</groupId> 
    <artifactId>jetty-maven-plugin</artifactId> 
    <version>8.1.5.v20120716</version> 
    <configuration> 
     <stopKey>1</stopKey> 
     <stopPort>9999</stopPort> 
    </configuration> 
    </plugin> 

我的web应用程序运行在EC2上我们有一些环境变量设置(如CLOUD_DEV_PHASE) 。我想知道是否有办法在pom文件中为CLOUD_DEV_PHASE设置一个虚拟值,因此您不必在系统上执行此操作。有没有办法做到这一点?

我正在寻找类似

CLOUD_DEV_PHASE=dev mvn jetty:run 

回答

3

东西,你是指添加系统属性? 这样的:

<plugin> 
    <groupId>org.mortbay.jetty</groupId> 
    <artifactId>jetty-maven-plugin</artifactId> 
    <configuration> 
    <systemProperties> 
     <systemProperty> 
     <name>CLOUD_DEV_PHASE</name> 
     <value>dummy</value> 
     </systemProperty> 
    </systemProperties> 
    <webApp> 
     <contextPath>/test</contextPath> 
    </webApp> 
    </configuration> 
</plugin> 

更多信息,请查看:http://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin#Setting_System_Properties

+0

不,它必须是一个环境变量。以下工作:CLOUD_DEV_PHASE = dev mvn jetty:run – ekaqu

1

我不能肯定完全明白你的问题,但如果你需要设置一个环境变量,我通常使用exec插件: http://mojo.codehaus.org/exec-maven-plugin/

以下目标:http://mojo.codehaus.org/exec-maven-plugin/exec-mojo.html

成才这样的:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>exec-maven-plugin</artifactId> 
    <version>1.2.1</version> 
    <executions> 
     <execution> 
     <id>setEnvVar</id> 
     <phase>initialize</phase> 
     <goals> 
      <goal>exec</goal> 
     </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <executable>export</executable> 
     <arguments> 
     <argument>CLOUD_DEV_PHASE=Something</argument> 
     </arguments> 
    </configuration> 
    </plugin> 

问候

+0

我试过这个,导出不是一个命令,而是一个bash函数,所以exec:exec不能用这种方式调用它。生病看看有没有办法 – ekaqu

+0

我试过 src/main/config/environment.sh刚刚出口,但是因为这个过程是分叉的,所以不会被添加。 – ekaqu

+0

你用exec:java试过了吗?在编译阶段http://mojo.codehaus.org/exec-maven-plugin/java-mojo.html? –

0

我想尝试设置属性env.CLOUD_DEV_PHASE项目部分:

<project> 
    ... 
    <properties> 
     <env.CLOUD_DEV_PHASE>dev</env.CLOUD_DEV_PHASE> 
    </properties> 
    ... 
</project> 

或在码头插件配置:

<plugin> 
    <groupId>org.mortbay.jetty</groupId> 
    <artifactId>jetty-maven-plugin</artifactId> 
    <configuration> 
    ... 
    <systemProperties> 
     <systemProperty> 
     <name>env.CLOUD_DEV_PHASE</name> 
     <value>dev</value> 
     </systemProperty> 
    </systemProperties> 
    </configuration> 
</plugin> 

问候

+0

所以我试着将属性添加到pom中,并且它似乎并没有码头JVM会看到它。 – ekaqu

+0

然后我尝试了systemProperty env.CLOUD_DEV_PHASE并且env.CLOUD_DEV_PHASE的java系统属性存在,但它不在环境变量列表中 – ekaqu

0

我在论坛上看到了这个。我希望它对你有用。

<plugin> 
    <groupId>org.eclipse.jetty</groupId> 
    <artifactId>jetty-maven-plugin</artifactId> 
    <version>${jetty.version}</version> 
    <configuration> 
     ... 

     <env> 
     <wibble>pencil</wibble> 
     <foo>bar</foo> 
     <black>white</black> 
     </env> 

     ... 

    </configuration> 
</plugin>