使用Maven的Spring自定义命名空间

时间:2009-06-25 15:31:58

标签: spring maven-2 xsd namespaces

我为我正在开发的基于Spring的项目编写了自己的自定义命名空间。该项目是使用maven构建的,我想将我的xsd文件放在资源目录中。问题是spring.schemas目录要求我定义放置xsd文件的位置。在我的开发环境中,它将是resources / schemas / myschema.xsd。但是,当我编译时,资源的内容被复制到目标,而不是目标目录本身。所以在编译的代码中,我最终得到了target / schemas / myschema.xsd。我的spring.schemas文件应该引用resources / schemas / myschema.xsd吗?或者只是schemas / xsd?

感谢,

杰夫

3 个答案:

答案 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

当你完成后,你将有一个新的模式文件夹,角落里有一个小箭头,表明它已被链接。您可能会发现需要强制刷新才能使新文件反映在链接位置。