我有一个Maven(Java)项目,我在其中使用Logback记录器,使用文件logback.xml
来配置记录器。目前,logback.xml
位于src/main/resources
。这确保了当我从Eclipse执行项目时,该记录器配置会自动包含在jar文件中并在运行时使用。
但是,我还想创建我的项目的二进制分发(使用程序集插件),其中记录器配置应该在外面 jar文件中可用(例如在单独的{{1 }} 目录)。我正在努力解决这个问题的最佳方法。
单独包含文件不是问题(我可以在程序集描述符中使用简单的conf/
或fileSet
指令),但我不确定如何使程序集创建一个jar我的项目的文件 not 包含file
文件。
我能想到的唯一方法是从logback.xml
移动文件,这样它就不会包含在jar中,而是将其添加到src/main/resources/
目录中以确保它是包含在Eclipse的运行时类路径中(然后在程序集描述符中显式地从那里复制它)。我不愿意在target/
中有任何签到的文件,所以希望有更好的方法来做到这一点。
答案 0 :(得分:0)
我刚想通了,真的很简单。
我通过将maven-jar-plugin
的配置添加到我项目的pom中来修复它:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<excludes>
<exclude>**/logback.xml</exclude>
</excludes>
</configuration>
</plugin>
这确保尽管该文件仍然可用于Eclipse的运行时类路径(在target/classes
中),但是在为我的项目生成jar时它不会包含在内。