使用maven资源文件夹找不到Log4j.properties

时间:2017-05-17 16:50:34

标签: java maven logging log4j

我尝试使用PropertyConfigurator.configure("log4j.properties")方法加载log4j的配置,但我一直在运行java.io.FileNotFoundException

我关注this question并将log4j.properties文件放入resources文件夹。

我还编辑了我的pom.xml:

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <targetPath>${project.build.directory}</targetPath>
            <includes>
                <include>log4j.properties</include>
            </includes>
        </resource>
    </resources>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.1</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <transformers>
                            <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <mainClass>src.Main</mainClass>
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

因此,当我运行mvn package时,生成的目标文件夹并排包含我的.jar和我的log4j.properties,但是当我运行我的jar时,我发现文件未找到异常。

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

注意: 请不要将log4j.properties包含到最终的Jar文件中,它会在类路径中导致多个log4j.properties文件,如果有人依赖你的Jar,你可能会意外地覆盖他们的日志配置,取决于首先加载哪个Jar。

供参考: https://www.mkyong.com/maven/maven-exclude-log4j-properties-in-jar-file/