簡體   English   中英

Maven - 如何從eclipse中引用環境變量

[英]Maven - How to refer environment variable from eclipse

我有一個maven項目。 pom.xml我將環境變量稱為${env.MyProjectVersion} 在構建項目之前,我從命令提示符設置變量的值( export MyProjectVersion=1.0.0 )。 構建成功,我將maven項目導入eclipse並且m2eclipse嘗試構建它失敗:

無法下載xyz - {$ env.MyProjectVersion}依賴項

Eclipse無法解析環境變量的值。 有沒有辦法用eclipse指定環境變量值,以便eclipse中的maven插件可以選擇它。

轉到“運行配置”,“轉到環境”選項卡,添加變量,其值將比解析變量值

顯然,Eclipse Maven插件在maven構建期間忽略了環境變量。 根據您的具體情況,可能的解決方法是使用settings.xml中的屬性。 唯一的缺點是你必須將這些變量定義為環境變量,並在settings.xml中第二次定義

在我的回答中,我描述了以下場景。 使用標准maven插件功能在eclipse中構建人工制品,並通過maven命令行另外構建相同的工件。 此外,在命令行構建期間,我直接引用存儲庫文件夾mvn -Dmaven.repo.local = / PATH_TO_M2_FOLDER / repository / -f parent.pom install

設置如下:您必須在pom.xml中添加屬性以充當環境變量的代理。 在命令行方案中,將直接填充這些屬性。 在Eclipse場景中,屬性必須由用戶settings.xml通過定義配置文件來填充。

假設您有一個屬性環境變量$ FOO。

在maven settings.xml中使用配置文件並定義fooProperty。

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
    http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <profiles>
        <profile>
            <id>default</id>
            <properties>
                <fooProperty>bar</fooProperty >
            </properties>
        </profile>
    </profiles>
    ...     
  <activeProfiles>
    <activeProfile>default</activeProfile>
  </activeProfiles>
</settings>

然后,您只需將Eclipse maven插件指向您的用戶設置即可。 要使CLI工作,您必須在pom.xml中第二次定義fooProperty:$ {env.foo}

顯然,eclipse maven插件優先於settings.xml中的屬性,而不是pom.xml中的屬性。 不幸的是,我還沒有找到一種通過環境變量在settings.xml中定義屬性的方法。

在pom.xml中使用變量時,只需使用proxy屬性,如下所示:... $ {fooProperty} ...

我正在使用* Eclipse Mars:Release(4.5.0)* Embedded Maven:3.3.3 / 1.6.0.20150526-2031 * OSX El Capitan:10.11.4(15E65)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM