git获取Spring framework,用gradle构建并打包,maven负责依赖

原文转自:http://blog.csdn.net/u012763117/article/details/16810031

为读spring源码做准备

其实自从maven接管依赖之后,各种库用起来得心应手很多,再也不用到处找来找去然后调整以来关系了,只需要在pom.xml中写好相关库的坐标,基本上就ok了。

好比spring,只要加上 spring-context 坐标,相关的spring-bean,spring-core等等基本springframework需要的库都会直接搞定,无非就是再根据需要增减所需或调整版本。

但是,有时候项目中并未让maven托管依赖处理,还是需要像当初那样需要spring-framework-xxx-dist-deps.zip,但是现在spring的官网已经不提供这种打包的下载了,怎么办?只好手动来搞了。

1. 首先是git clone springframework 的项目,不用非要去github,只要在国内的托管仓库里找一个springframework的mirror就行了。

我发现osc-git里有spring的mirror,所以就采用了它。

[plain]  view plain copy
  1. git clone http://git.oschina.net/mirrors/spring-framework.git  

git获取Spring framework,用gradle构建并打包,maven负责依赖_第1张图片


2. 查看一下spring的分支

[plain]  view plain copy
  1. git branch -r  

git获取Spring framework,用gradle构建并打包,maven负责依赖_第2张图片


3. 将当前工作环境变为3.2.5.Release,当然可以手动输入git checkout origin/3.2.5.RELEASE,但是拼起来费劲,直接上管道。。。走你。。。

[html]  view plain copy
  1. git branch -r | grep 5 | git checkout -  


4. 确定了版本,然后就可以构建打包了。

spring现在用的是gradle来构建,gradle兼容maven和ant,而且它更灵活,只是咱们国内貌似使用的很少很少。它的配置文件已经开始用脚本性质了,比起xml更加简练干净和直观。因为我机子上有maven,而且配置了.m2,所以gradle会识别我的.m2里的设置。运行之后它会自动在我的家目录下生成gradle程序所需要的相关程序或文件在~/.gradle里,这个不用在意。构建项目时的依赖会兼容.m2相关设置到我设置的指定的本地依赖仓库中。

在spring的github上的文档中,写着只要在spring项目目录直接运行 ./gradlew build 就可以构建spring项目了,它会编译,自动生成api-doc、使用手册(html/html-single/pdf)以及每个spring模块的jar包和src/doc的jar文件,然后将这所有的一切打包成 spring-framework-3.2.5.RELEASE-dist.zip。所以spring官网才没有提供这个zip的下载链接,因为可以在使用者的机子上自己构建。

但是仅仅有这个 dist.zip 往往很让人搓火很隔应人,因为如果maven还是得去寻找spring的依赖库。

稍等,以前spring还会提供一个 dis-witht-deps.zip,这个更好,直接把spring依赖库或整合的开源库都给打包进来了,方便多了。

spring在它github上的文档上提供了这个构建方法:./gradlew depsZip

所以,不用build目标了,改成depsZip目标更爽。

[plain]  view plain copy
  1. ./gradlew depsZip  

git获取Spring framework,用gradle构建并打包,maven负责依赖_第3张图片

我这个是以前运行过 gradlew,已经在家目录生成过.gradle 目录了,如果是第一次运行,它会先下载它的运行时库,然后再解析spring项目的依赖下载依赖然后再进行构建。


5. 大概二十几分钟,就构建打包完成了。

可能测试会用去不少时间,还有可能在测试的时候没有通过,但是我没有遇到。。。有个建议,gradle有个参数 是  “ -x 目标名”,意思是排除某个目标任务


所以,应该可以用  ./gradlew depsZip -x test 免去构建各个projects时的test目标吧,我没试过。


6. 现在 spring-framework-3.2.5.RELEASE-dist-with-deps.zip 生成了, 在spring-framework/build/distributions目录中。

git获取Spring framework,用gradle构建并打包,maven负责依赖_第4张图片


7. 文档上还说 用gradle 可以生成 eclipse或 idea 的部署配置文件,我没试,不感兴趣,没有maven的话还是以前的copy jar文件到libs或者手动选择性的添加到eclipse的用户库中来的实在。

所以,我找个地方把 dist-with-deps.zip 解压了,里面什么都有了,文档/手册/库/依赖库等等。。。

看一眼解压后的 deps依赖目录里,所有被spring整合或spring需要的依赖都有了

git获取Spring framework,用gradle构建并打包,maven负责依赖_第5张图片


但是在spring的库里,有个让人不爽的事情,就是它把库的jar文件和src的jar文件以及doc的jar文件都特么放一个目录地下,这让我copy的时候眼花缭乱的,eclipse导入某个库的源码什么的也要眼花。

所以,我想了个办法,就是把它们分们别类,doc放到doc目录,src放到src目录。进入解压目录的libs中直接用合并命令。。。

[plain]  view plain copy
  1. mkdir doc src && mv *-javadoc.jar doc && mv *-sources.jar src  



这下清爽很多了 。。。。。


你可能感兴趣的:(git获取Spring framework,用gradle构建并打包,maven负责依赖)