Java 未从Maven构建中排除Log4j文件
我在src/main/resources中有一个log4j.xml文件,我正试图从jar文件中排除它。我在父pom文件中有一个版本为3.0.0的属性Java 未从Maven构建中排除Log4j文件,java,maven,Java,Maven,我在src/main/resources中有一个log4j.xml文件,我正试图从jar文件中排除它。我在父pom文件中有一个版本为3.0.0的属性 ... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
<configuration>
<excludes>
<exclude>**/log4j.xml</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven-resources-plugin.version}</version>
<configuration>
<!-- specify UTF-8, ISO-8859-1 or any other file encoding -->
<encoding>UTF-8</encoding>
</configuration>
</plugin>
...
。。。
org.apache.maven.plugins
maven jar插件
${maven jar plugin.version}
**/log4j.xml
org.apache.maven.plugins
maven资源插件
${maven resources plugin.version}
UTF-8
...
我升级到了maven jar插件的3.0.0版,还将exclude从“src/main/resources/log4j.xml”改回了“**/log4j.xml”,我暂时将其切换到了“src/main/resources/log4j.xml”,因此我不确定是否需要一个或两个修复程序。如果您使用***log4j*
这个模式对您来说是可以接受的,那么它应该会起作用
注意文档底部写的内容:
请注意,模式需要与为插件的classesDirectory参数指定的路径相对。根据maven手册(),您必须将要包含/排除的文件放在参考资料
部分。因此,如果文件位于src/resources上,则配置为:
<project>
...
<name>My Resources Plugin Practice Project</name>
...
<build>
...
<resources>
<resource>
<directory>src/resources</directory>
<excludes>
<exclude>**/log4j.xml</exclude>
</excludes>
</resource>
...
</resources>
...
</build>
...
</project>
...
我的资源插件实践项目
...
...
高级文书主任/资源
**/log4j.xml
...
...
...
希望有帮助。什么是
排除??到底是什么错误或问题?@manouti,问题是该文件没有从jar文件中排除。我更正了拼写,但仍然存在相同的问题。首先,如果您不想将文件放入jar,只需将其从src/main/resources
中删除即可,因为Maven的惯例是,src/main
中的所有内容都是打包的。如果您仅在测试时需要它,请将其移动到src/test/resources
…将不起作用,因为资源的位置是src/main/resources
,而不是src/resources
。和往常一样,你应该遵循Maven中的惯例。