簡體   English   中英

如何在pom.xml中設置classpath?

[英]How to set classpath in pom.xml?

使用maven運行測試時,我想在屏幕上看到輸出。

log4j.xml放入我的項目的目錄(src / test / resources / cfg /)后,我更新了我的pom以包含

235             <plugin>
236                 <groupId>org.apache.maven.plugins</groupId>
237                 <artifactId>maven-surefire-plugin</artifactId>
238                 <configuration>
239                     <skipTests>false</skipTests>
240                     <excludes>
241                         <exclude>**/*$*.java</exclude>
242                     </excludes>
243                         <systemProperties>
244                            <property>
245                               <name>-Dlog4j.configuration</name>
246                               <value>file:src/test/resources/cfg/log4j.xml</value>
247                            </property>
248                         </systemProperties>
249                     <additionalClasspathElements>
250                         <additionalClasspathElement>src/test/resources/cfg/</additionalClasspathElement>
251                     </additionalClasspathElements>
252                 </configuration>
253             </plugin>

以上不起作用。 測試運行時,我仍然看到以下消息

log4j:WARN Please initialize the log4j system properly.

對於記錄,以下是log4j

  1 <?xml version="1.0" encoding="UTF-8" ?>
  2 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
  3 
  4 <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  5   <appender name="console" class="org.apache.log4j.ConsoleAppender">
  6     <param name="Target" value="System.out"/>
  7     <layout class="org.apache.log4j.PatternLayout">
  8       <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/>
  9     </layout>
 10   </appender>
 11 
 12   <root>
 13     <priority value ="debug" />
 14     <appender-ref ref="console" />
 15   </root>
 16 
 17 </log4j:configuration>

我錯過了什么?

我有幾點意見。 首先,我建議您將任何與測試相關的log4j,logback配置文件直接放在src / test / resources中。 這樣它們總是被添加到類路徑中,它只是起作用。

但是,如果您需要將文件放在src / test / resources / cfg中並希望使用classpatlelements,那么請注意文檔的建議

但是,如果必須,可以使用additionalClasspathElements元素將自定義資源/ jar添加到類路徑中。 這將被視為絕對文件系統路徑,因此您可能需要使用$ {basedir}或其他屬性與相對路徑相結合。

所以嘗試:

<additionalClasspathElement>${basedir}/src/test/resources/cfg/</additionalClasspathElement>

log4j:WARN Please initialize the log4j system properly.

如果您不需要使用log4j,則無需關心此消息。

但是,如果你需要的log4j,請添加下面<dependency>標記下<dependencies>

<dependency>
   <groupId>log4j</groupId>
   <artifactId>log4j</artifactId>
   <version>1.2.16</version>
</dependency>

暫無
暫無

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

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