我为此苦苦挣扎了一段时间。我在独立环境中使用 Spring3.1。我有需要添加到类路径(applicationXML)中的资源文件。在日食中,这是一种众所周知且简单的方法。现在我正在尝试使用 Daemon (commons-daemon-1.0.3.jar) 将我的应用程序部署到 Linux 上的独立环境。
如何将资源文件添加到类路径中?
您可以做的一件事是使用 Maven Shade 插件。这用于为您的构建配置文件中的所有内容创建 SuperJAR — 来自 Apache 和 Spring 的依赖 JAR,以及您自己的代码。阴影插件可以添加“。”的类路径条目。进入 SuperJAR 的清单,这正是您能够运行 SuperJAR 的 Main 类的方式,但让类加载器在本地目录和所有组件的 JAR 中查找。
您必须稍微调整您的构建,以便像 log4j.properties 和 application-context.xml 之类的东西,以及您希望在构建后让系统管理员/客户修改的其他文件被排除在资源/路径之外 - 否则他们会得到烘焙到构建中。
你可以在这里查看我的源代码http://sourceforge.net/projects/jee2pctest/。客户端驱动程序代码提供了一个很好的示例,说明如何使用 Maven Shade 插件创建带有外部属性文件的直接可执行 JAR。魔术主要在 pom.xml 文件中。一个警告,我正在使用 Maven 构建工具,如果您仍在使用 IDE 的内置打包程序在 ANT 上,那么您可能需要完成一些工作。