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  



2. 查看一下spring的分支

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



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  


我这个是以前运行过 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目录中。



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

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

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



但是在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  



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


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Gradle集成Spring Cloud,你可以按照以下步骤进行操作: 1. 首先,在你的项目根目录下的`build.gradle`文件中添加以下内容,以引入Spring Boot和Spring Cloud的依赖: ```groovy plugins { id 'org.springframework.boot' version '2.5.3' id 'io.spring.dependency-management' version '1.0.11.RELEASE' } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.cloud:spring-cloud-starter-config' // 其他Spring Cloud依赖 } dependencyManagement { imports { mavenBom 'org.springframework.cloud:spring-cloud-dependencies:2020.0.3' } } ``` 2. 接下来,创建一个Spring Boot应用程序类,例如`MyApplication.java`,并添加`@EnableConfigServer`注解,以启用配置服务器功能: ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.config.server.EnableConfigServer; @SpringBootApplication @EnableConfigServer public class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } } ``` 3. 创建一个`bootstrap.properties`或`bootstrap.yml`文件,用于配置Spring Cloud的相关属性。例如,配置配置服务器的Git仓库地址和认证信息: ```properties spring.cloud.config.server.git.uri=<git-repo-url> spring.cloud.config.server.git.username=<git-username> spring.cloud.config.server.git.password=<git-password> ``` 4. 最后,运行应用程序类`MyApplication`,启动Spring Cloud配置服务器。 这样,你就成功集成了GradleSpring Cloud。你可以根据自己的需求,进一步配置和扩展Spring Cloud的功能。希望对你有帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值