如何将记录器配置包含在maven程序集中作为单独的文件

时间:2013-06-12 23:11:45

标签: java eclipse maven

我有一个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/中有任何签到的文件,所以希望有更好的方法来做到这一点。

1 个答案:

答案 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时它不会包含在内。