0

我正在尝试从外部文件导入我的部分 spring 上下文。在我的 spring 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/”?

4

2 回答 2

2

将弹簧配置更改为:

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

并使用 java -jar [jar] -Dfile=realpath model-a.xml

于 2013-11-27T19:18:47.020 回答
0

查看文件的副本target/classes;您可能会发现它${file}已经消失并已替换为model-a.

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

于 2013-11-14T15:25:49.320 回答