2013-03-06 63 views
1

我正在使用詹金斯,我有一臺Windows機器設置爲奴隸工。我有一個運行在slave上的基於Maven的項目。構建工作正常,但我從log4j得到了關於它未被初始化的警告。我想抓那個癢,並刪除警告,但我不知道如何。詹金斯奴隸運行Maven給出log4j警告

我對log4j不是很熟悉。我明白我可以設置一個系統屬性來告訴它在哪裏可以找到配置文件,但我不知道Jenkins管道中應該設置屬性的位置或者如何設置屬性。看起來在Maven啓動之前,但從設備開始工作之後,警告就出現了。

這裏是控制檯輸出的SNIPPIT:

Parsing POMs 
[MyTest] $ java -cp C:\jenkins\maven3-agent.jar;C:\jenkins\tools\Maven\Maven\boot\plexus-classworlds-2.4.jar org.jvnet.hudson.maven3.agent.Maven3Main C:\jenkins\tools\Maven\Maven C:\Users\waisbrot\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\28\5c50da9c-2d1a9aef C:\jenkins\maven3-interceptor.jar 49210 
<===[JENKINS REMOTING CAPACITY]===>channel started 
log4j:WARN No appenders could be found for logger (org.apache.commons.beanutils.converters.BooleanConverter). 
log4j:WARN Please initialize the log4j system properly. 
Executing Maven: -B -f C:\jenkins\workspace\MyTest\pom.xml test 
[INFO] Scanning for projects... 

回答

1

我不是特別自豪的這個log4j文檔,但我不感興趣,任何空談,所以我做

jar uf <path to maven3-agent-1.2.jar>/maven3-agent-1.2.jar log4j.xml 

其中log4j.xml包含

抑制它
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
    <root> 
    <level value="off"/> 
    </root> 
</log4j:configuration> 

NB:如在當前的目錄中所示,用log4j.xmljar命令必須被執行。

+1

這正是我一直在尋找的!既然你的答案解決了這個問題,我相信這是一個詹金斯的錯誤。我已經提交了一個關於它的錯誤報告:https://issues.jenkins-ci.org/browse/JENKINS-17640 – 2013-04-16 20:37:53

0

只需提供一個log4j.properties或者在classpath中有效的內容的log4j.xml。詳情請參閱

+0

與設置系統屬性一樣,我不知道如何將項添加到Jenkins管道的該部分中的類路徑。你知道我如何改變Jenkins用來啓動'Maven3Main'的類路徑嗎? – 2013-03-19 12:44:21

+0

在我看來,你的應用程序/測試試圖使用log4j。所以您必須將配置添加到您的應用程序中,即將其放入資源文件夾中。 – 2013-03-19 13:04:05

+0

不,你可以在我發佈的控制檯輸出中看到。首先Jenkins運行'Maven3Main',然後產生警告,然後*在那之後*它在我的POM文件上執行Maven。我不在我的項目中使用log4j。 – 2013-03-19 13:29:59