2
我的Hudson作業調用單個XML數據庫集合和單個日誌文件。例如。如何將Hudson的env.EXECUTOR_NUMBER傳遞給log4j屬性和Java的System.getProperty
- /DB /項目
- $ {}的user.home /logs/logging.log
我想注入哈德森的env.EXECUTOR_NUMBER在兩條路徑,以避免併發執行的衝突。例如。
- /DB /項目{$ EXECUTOR_NUMBER}
- {$}的user.home /日誌{$ EXECUTOR_NUMBER} /logging.log
我發現了以下:
- Hudson site指出我需要將Hudson的EXECUTOR_NUMBER作爲構建目標的一部分傳遞給Maven。
- Log4J can only use system variables不是環境變量(因爲這些是特定於平臺的概念)
現在,我已經得到了在構建目標指定哈德森的EXECUTOR_NUMBER變量,我怎麼能以此作爲一個系統屬性供Log4J的和Java的System.getProperties()類?
這是非常相似的,我得到了什麼。我正在通過運行'mvn clean install -DTestClassTest -DEXECUTOR_NUMBER = {$ EXECUTOR_NUMBER}'來測試它,然後將每個System.getProperty().keySet()記錄到一個日誌文件並且它不包含執行編號 – PhilJ
哦,是我們在談論測試課?然後,您需要將系統屬性添加到surefire插件。更新了我的答案。 –
感謝您的幫助肖恩。通過在Maven-osgi-test-plugin,configuration,argLine的主項目的pom文件中添加-DEXECUTOR_NUMBER = $ {EXECUTOR_NUMBER},然後在Hudson的作業配置,構建,屬性部分添加EXECUTOR_NUMBER = $ {EXECUTOR_NUMBER} 。由於某種原因,我沒有Maven-surefire插件。 – PhilJ