How to set classpath in pom.xml?

When running tests using maven , I would like to see the output on my screen.

By log4j.xml in my dir project (src / test / resources / cfg /), I updated pom to include

 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> 

The above does not work. When tests are running, I still see the following message

 log4j:WARN Please initialize the log4j system properly. 

For the record, the following is 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> 

What am I missing, please?

+4
source share
2 answers

I have some comments. Firstly, I recommend that you put any testing-related log4j, logback configuration files directly into src / test / resources. That way, they are always added to the classpath, and it just works.

However, if you need to put the files in the src / test / resources / cfg file and want to use classpathelements, then listen to the documentation recommendation

But, if necessary, you can use the accessClasspathElements element to add custom resources / banks to your classpath. This will be considered as a path to the absolute file system, so you may need to use $ {basedir} or another property in combination with a relative path.

So try:

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

log4j:WARN Please initialize the log4j system properly.

You do not need to care about this post unless you need to use log4j.

However, if you need log4j, add the following <dependency> to <dependencies>

 <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> </dependency> 
-3
source

Source: https://habr.com/ru/post/1446330/


All Articles