我需要将Java项目导出到可执行文件中,例如JAR。 该项目使用Spring XML上下文文件来实例化bean并使用以下值注入它:“src / main / resources /”,它对应于CSV文件的位置。
当我生成JAR时,“src / main / resources”文件夹不是JAR的一部分,因此执行失败,因为bean无法加载所需的CSV文件。
处理此问题的最佳方法是什么? 什么是生成可执行JAR的最佳方法?从Eclipse导出? Maven Assembly插件?
答案 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中运行。