【问题标题】:Passing custom environment variables to maven cargo将自定义环境变量传递给 Maven 货物
【发布时间】:2011-09-17 02:03:16
【问题描述】:

我正在寻找一种将环境变量传递到货物集装箱的方法。像这样的:

<plugin>
  <groupId>org.codehaus.cargo>
  <artifactId>cargo-maven2-plugin</artifactId>
  <configuration>
    <environmentVariables>
      <myCustomVariable>value</myCustomVariable>
      ...

【问题讨论】:

    标签: java maven environment-variables maven-cargo


    【解决方案1】:

    AFAIK,货物只允许传递Passing system propertiesMaven Tips 中提到的系统属性,如下例所示:-

    <container>
      [...]
      <systemProperties>
        <myproperty>myvalue</myproperty>
      </systemProperties>
    </container>
    

    解决方法可能是将系统属性链接到环境变量,如下例所示:-

    <container>
      [...]
      <systemProperties>
        <myproperty>${env.MY_ENV_VAR}</myproperty>
      </systemProperties>
    </container>
    

    通常我们只能通过操作系统的方式来设置环境变量。无论如何,还有一种解决方法可以通过使用 Java 来设置它,正如 How do I set environment variables from Java? 中提到的那样。

    我总是在单元测试期间使用这个技巧来设置环境变量,方法是使用 @BeforeClass 将它们放入 JUnit 测试套件,然后使用 @AfterClass 将它们设置为空字符串。

    请注意,正式的 Java 教程也提到了 Environment VariablesPassing Environment Variables to New Processes

    我希望这会有所帮助。

    【讨论】:

    • 我试过了,但它不适用于 glassfish 4。我总是将该属性设为空。要检索 java 代码中的属性,我使用:System.getenv("myproperty")。我也试过 System.getProperty("myproperty") 但也没有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 2013-06-05
    • 2019-01-07
    • 1970-01-01
    • 2021-09-05
    • 2020-03-27
    相关资源
    最近更新 更多