我正在尝试从外部文件导入部分弹簧上下文。在我的春天xml的底部我有:
<import resource="${file}" />
我想使用命令行参数指定$ {file},我使用JVM属性。 我正在使用maven程序集插件创建一个可执行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 :(得分:2)
将弹簧配置更改为:
后解决了这个问题<import resource="file:${file}" />
并使用java -jar [jar] -Dfile = realpath model-a.xml
答案 1 :(得分:0)
查看target/classes
中文件的副本;您可能会发现${file}
已消失,并已替换为model-a
。
为了解决这个问题,我建议为变量使用更长的名称,最好是告诉其他人这个变量的含义。