我为我正在开发的基于Spring的项目编写了自己的自定义命名空间。该项目是使用maven构建的,我想将我的xsd文件放在资源目录中。问题是spring.schemas目录要求我定义放置xsd文件的位置。在我的开发环境中,它将是resources / schemas / myschema.xsd。但是,当我编译时,资源的内容被复制到目标,而不是目标目录本身。所以在编译的代码中,我最终得到了target / schemas / myschema.xsd。我的spring.schemas文件应该引用resources / schemas / myschema.xsd吗?或者只是schemas / xsd?
感谢,
杰夫
答案 0 :(得分:1)
为Spring创建自定义命名空间时, spring.schemas 文件应位于 META-INF 中,其条目如下:
http://www.springframework.org/schema/context/spring-context-2.5.xsd=org/springframework/context/config/spring-context-2.5.xsd
您的自定义架构应该在 src / main / resources / org / springframework / context / config / 中添加到项目的类路径中。
任何好的IDE都应该将 src / main / resources / 理解为源代码文件夹,并且很好地阅读架构。
注意:我从spring-core.jar中提取了这个例子,亲自检查一下
答案 1 :(得分:1)
它应该只指向schemas / myschema.xsd
目标/资源将最终出现在您的类路径中,以便您可以安全地引用那里的所有内容。
答案 2 :(得分:0)
您可以在Eclipse中定义链接位置。通过使用变量来定义工作区根目录,然后创建链接文件夹,您可以保持一定的可移植性。
右键点击该项目,选择新 - > 文件夹
调用文件夹“schemas”,点击高级>> ,选择链接到文件系统中的文件夹
选择变量... 并选择 WORKSPACE_ROOT 变量
添加schemas文件夹的相对路径,例如[项目名称] / src / main / resources / schemas
当你完成后,你将有一个新的模式文件夹,角落里有一个小箭头,表明它已被链接。您可能会发现需要强制刷新才能使新文件反映在链接位置。