2013-11-14 43 views
0

我试图从外部文件中导入部分我的spring上下文。在我的Spring XML的底部我:Maven&Spring从外部文件导入资源XML

<import resource="${file}" /> 

我想用命令行参数来指定$ {}文件和我使用该JVM性能。 我正在使用maven assembly插件制作一个可执行的jar文件。

然后我运行它,我指定与JVM参数文件:

java -jar [app.jar] -Dfile=model-a.xml 

当我调试使用eclipse这工作得很好。

但是,当我使用maven打包文件spring无法解析路径,并由于某种原因它试图在“spring/model-a.xml”中找到文件我使用maven-assembly-plugin构建我的jar。

为什么使用java -jar运行将“spring /”添加到我的路径中?

+0

您可以添加您spring.xml和你剧目的树?我相信spring/get会被添加,因为它是relativePath,而你的文件是src/main/resources/spring/spring.xml。 – zenbeni

回答

1

这是改变弹簧配置后问题:

<import resource="file:${file}" /> 

而使用Java的罐子[罐子] -Dfile = realpath model-a.xml

0

查看target/classes中的文件副本;您可能会发现${file}已不存在,并已被model-a取代。

为了解决这个问题,我建议为这个变量使用一个更长的名字,最好是告诉别人这个意思是什么。