0

我有一个 Maven (Java) 项目,我在其中使用 Logback 记录器,使用文件logback.xml来配置记录器。目前,logback.xml居住在src/main/resources. 这确保当我从 Eclipse 执行项目时,该记录器配置会自动包含在 jar 文件中并在运行时使用。

但是,我还想创建我的项目的二进制分发(使用程序集插件),其中记录器配置应该在 jar 文件之外可用(例如,在单独的conf/目录中)。我正在努力寻找最好的设置方法。

单独包含文件不是问题(我可以在程序集描述符中使用简单fileSetfile指令),但我不确定如何使程序集为我的项目创建一个包含该文件的 jarlogback.xml文件。

我能想到的唯一方法是将文件从中移动,src/main/resources/这样它就不会包含在 jar 中,而是将其添加到target/目录中以确保它包含在 Eclipse 的运行时类路径中(然后从那里显式复制它在程序集描述符中)。我不愿意有任何签入的文件target/,所以希望有更好的方法来做到这一点。

4

1 回答 1

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 时不包含该文件。

于 2013-06-12T23:28:56.980 回答