2009-06-25 55 views
0

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

感谢,

杰夫

回答

1

当创建春自定义空间的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 /主/资源/组织/ springframework的/ context/config/到被添加到项目的类路径中。

任何好的IDE都应该明白src/main/resources/作为源代码文件夹并且很好地读取模式。

注:我把从春天core.jar添加这个例子中,你来就可以检查它

+0

谢谢你的例子。我确实有这一切工作,但我认为有一个IDE问题 - 你可以看看我上面发布的评论吗?谢谢。 – 2009-06-25 18:42:07

+0

您是否试图“清理”您的项目?你使用什么Maven插件? – 2009-06-27 17:05:08

0

您可以在Eclipse中定义链接的位置。通过使用变量来定义您的工作空间根目录,然后创建链接文件夹,您可以保持一定的可移植性。

在项目上单击右键,选择 - >文件夹

调用文件夹 “模式”,点击高级>>,选择链接文件系统到文件夹

选择变量...,并挑选WORKSPACE_ROOT变量

将相对路径添加到您的模式文件夹,例如[项目名称]/src/main/resources/schemas

当你完成后,你将有一个新的模式文件夹,在角落有一个小箭头显示它已链接。您可能会发现需要强制刷新以获取新文件以反映在链接的位置。

1

它应该只点模式/ myschema.xsd

目标/资源将在最终的classpath,以便您可以安全地引用所有内容。