在Intellij中查看springframework源代码

3

我在Intellij中设置springframework代码时遇到了困难。

我从GitHub上git克隆了springframework项目,并运行ant任务将所有库获取到ivy-cache目录中。我找到了intellij项目的“spring-framework.ipr”文件,并打开了它。不幸的是,一些库没有正确地映射到jar文件或缺失。因此,我无法在IDE中编译代码库。

我还尝试将其作为eclipse项目导入到intellij中。Jar文件引用似乎没问题。但是,在OXM模块中有编译错误。一些测试类引用了自动生成的类,例如“~.samples.flight.FlightDocument”,“~.jaxb.test.FlightType”,而它们不存在(ant test目标在目标目录中生成它们)。看来在STS中也会出现同样的问题。

我参考了这篇博客文章:http://blog.springsource.org/2009/03/03/building-spring-3/

有什么好的建议可以在intellij中设置spring代码吗?
我使用intellij v11。

git分支:3.1.x
git提交:e8fc90ce3e4554f14eaa86ce05591249d3fe62fa

编译错误示例:

.../org.springframework.oxm/src/test/java/org/springframework/oxm/xmlbeans/XmlBeansMarshaller Tests.java

Error:(29,42) package org.springframework.samples.flight does not exist
Error:(30,42) package org.springframework.samples.flight does not exist
Error:(44,9) cannot find symbol class FlightsDocument
Error:(44,58) package FlightsDocument does not exist
....

谢谢,

最好在问题中添加您收到的错误。 - yair
为什么不将生成的代码路径添加到目标目录中,然后将其作为源路径呢? - jackrabbit
1个回答

1
问题已解决。
“spring-framework.ipr”是适用于Intellij的文件。
教训:
  • 在spring-framework.ipr文件中引用了错误版本的junit。
  • 当ant构建失败时,测试中间会停止,因此后续模块将不会被构建。因此,所需的库将不会下载到ivy-cache/repository中。
  • “ant jar”目标不会下载与测试相关的库,因为该目标不运行测试。
在所有测试都通过并手动修复了junit引用后,Intellij最终没有错误。

很高兴你解决了它。我们很快将对Spring的构建系统进行重大更新,将其迁移到Gradle。您有兴趣帮助确保这是一个平稳的过渡吗?例如,在IDEA中测试它?您可以通过cbeams@vmware.com与我联系。 - Chris Beams

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接