JAR导出上的文件夹位置无效(Spring属性)

时间:2013-08-01 22:14:03

标签: java spring build jar export

我需要将Java项目导出到可执行文件中,例如JAR。 该项目使用Spring XML上下文文件来实例化bean并使用以下值注入它:“src / main / resources /”,它对应于CSV文件的位置。

当我生成JAR时,“src / main / resources”文件夹不是JAR的一部分,因此执行失败,因为bean无法加载所需的CSV文件。

处理此问题的最佳方法是什么? 什么是生成可执行JAR的最佳方法?从Eclipse导出? Maven Assembly插件?

2 个答案:

答案 0 :(得分:0)

Maven通常会将“src / main / resources”中的内容部署到您的webapp的WEB-INF目录中。

答案 1 :(得分:0)

如果这是一个Maven jar项目,package目标将在jar的根目录中生成一个带有/ src / main / resources的jar文件,所有子文件夹都从那里延伸。

如果将/ src / main / resources放在构建类路径上,Eclipse可以做同样的事情。

无论哪种方式,你必须告诉Spring在类路径上找到上下文xml文件,假设它直接在/ src / main / resources而不是子文件夹。

当你告诉Spring构建BeanFactory(或ApplicationContext或其他)时,不要使用/src/main/resources/spring-context.xml作为文件名。使用spring-context.xml并在类路径上使用FileSystemXmlApplicationContext("classpath:spring-context.xml")来表示它。或者您可以使用ClassPathXmlApplicationContext("spring-context.xml")

将/ src / main / resources添加到eclipse类路径时,可以在Eclipse或jar中运行。