簡體   English   中英

您如何訪問 java maven 項目中的 azure 管道變量?

[英]how do you access azure pipelines variables in a java maven project?

我們在 azure 管道中有一個現有的 java 應用程序,我們正嘗試在其中添加使用變量。我主要有 Java 背景,並且對 ADO 和 azure 管道非常陌生。 我已經閱讀了有關 azure 管道變量的文檔,但沒有看到如何在 java 應用程序中獲取這些變量。 文檔說這些變量可以用作任務的輸入,也可以通過環境變量提供給腳本。

本項目為maven項目; 第一個任務是 maven 'clean install',所以有沒有辦法將 ADO 管道變量注入 maven 構建中,然后以某種方式讓 maven 將其轉換為程序可以通過 System.getPropert( ) 或 System.genenv()?

當管道執行時,Azure 會將所有管道變量放入環境變量中,因此作為構建的一部分運行的任何工具、腳本、任務或進程都可以通過環境訪問參數。

您可以在管道 YAML 定義或 DevOps 管道 GUI 中定義變量。

要將變量用作任務的輸入,請將其包裝在$() 使用這些環境變量的語法取決於腳本語言。 名稱為大寫, . 替換為_ ,並自動插入到進程環境中。 這在文檔的這一部分中有說明。

這個博客可以幫到你,請參考。

您可以添加一個bash 任務來將您的管道變量公開為當前 shell 的環境變量。 請參考下面的例子。

我用下面的java代碼創建了一個java maven測試項目。 我測試發現下面的代碼無法訪問我在管道變量中定義的變量。

在此處輸入圖片說明

解決方法是添加bash 任務以在代理上設置環境變量。 對於下面的例子。

export MyTestVariable="$(MyTestVariable)"
export TestProperty="$(TestProperty)"

上面的腳本為當前 shell 公開了兩個 env 變量。 你可以參考這個線程

然后從 bash 命令運行 mvn 命令。 下面是我的完整腳本。

在此處輸入圖片說明

然后從測試輸出日志。 可以使用方法System.genenv()從 java 項目訪問該變量。

在此處輸入圖片說明

暫無
暫無

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

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