This example shows you how to use Maven to exclude the log4j.properties
file from your Jar file.
Note
Please, DO NOT include the
log4j.properties
into the final Jar file, it will cause multiplelog4j.properties
files in the classpath, if someone is depending on your Jar, you may accidentally override their logging configurations, depends which Jar is loaded first.
pom.xml
<project> <build> <plugins> <!-- Make this jar executable --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <!-- exclude log4j.properties --> <excludes> <exclude>**/log4j.properties</exclude> </excludes> <archive> <manifest> <addClasspath>true</addClasspath> <mainClass>com.favtuts.core.utils.testing</mainClass> <classpathPrefix>dependency-jars/</classpathPrefix> </manifest> </archive> </configuration> </plugin> </plugins> </build> </project>
Please pass in your log4j.properties
file via log4j.configuration
system property like this
$ java -jar -Dlog4j.configuration=file:/full_path/log4j.properties final.jar