概述
基础环境的准备
学习一门语言,当然要从官网开始.
本文需要依赖一些基础环境,其中主要包括了:
- JDK 8 + (必须)
- git(必须)
本文的构建环境
- 操作系统: Ubuntu 17.10
- JDK: 64-Bit的openjdk:1.8.0_171
- git :2.14.1
1. 获取spring Framework5的源码.
这一步最终目的就是通过执行命令
git clone https://github.com/spring-projects/spring-framework.git
获取源码.
-
step1: 通过浏览器输入
https://spring.io/
进入spring的官网.
-
step2: 点击上图红框中的
PROJECTS
导航标签,跳转到spring工程页面.
-
step3: 点击上图红框中
SPRING FRAMEWORK
标签进入spring framework项目的详情页.
上图中画了三个框:
红色框跳转到github上的spring framework项目.
紫色框跳转到stackoverflow中的spring的相关问题.
蓝色框点击后可以查看不同版本的spring官方文档.
-
step4: 点击上图的红框跳转到spring framework的github首页.
-
step5: 点击上图的红框中的
Clone or download
按钮,弹出下拉框.
-
step6: 点击上图红框中的按钮,将会把当前项目的git地址复制到剪贴板.
之后通过git命令或者图形化界面clone该项目即可.
git clone https://github.com/spring-projects/spring-framework.git
等待clone进程结束,就已经成功的将spring framework项目的源代码clone到了本地. 此时查看当前目录下,应该会多出一个spring-framework目录,该目录存放的就是spring framework项目的源码.
2. 构建spring源码,并导入到IDE工具内.
spring框架是基于gradle构建的,可能有所区别于目前常用的maven,但是其实gradle的用法并没有想象中那么复杂,大致看一下grovvy语法,之后了解一下gradle常用的一些概念,用时应该不会超过4个小时. 当然,哪怕不了解gradle也并不影响使用.
spring官方提供了构建spring源码的文档,遇到问题可以参考该文档:链接地址
- 为了避免编译过程中出现因为gradle版本不兼容而引发的问题,建议使用spring项目根目录下的gradlew包装器,而不是本机装的gradle命令.
- 为了避免编译过程中因为用户权限导致的问题,可以考虑使用root/管理员用户执行命令,linux用户可以考虑在命令前加上
sudo
命令.- 如果本机的JDK版本不对,同时不想修改本地的JDK的话,在spring源码根目录下的gradle.properties添加内容
org.gradle.java.home=<jdk目录>
来修改编gradle译时使用的jdk.- 可以通过添加gradle编译参数来提升编译速度.
#Gradle资源文件
#指定当前项目的JDK(适用于不使用系统环境变量对应的JDK,如果不需要,请注释掉该配置,避免报错.)
org.gradle.java.home=/usr/local/java8
#启用并行编译
org.gradle.parallel=true
#启用编译守护进程
org.gradle.daemon=true
#配置可用编译内存
org.gradle.jvmargs=-Xms256m -Xmx1024m
- 针对网络问题,最好在编译源码之前修改gradle仓库,提高插件和依赖的下载速度,具体实现方式是将buildscript配置代码块中的repositories和configure(allprojects)配置代码块中的repositories替换为下列代码:
//配置仓库
repositories {
mavenLocal()
maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
maven { url "https://repo.spring.io/plugins-release" }
maven { url 'https://repo.spring.io/libs-snapshot' }
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
mavenCentral()
jcenter()
maven {
url "https://plugins.gradle.org/m2/"
}
}
-
- build.gradle文件原始内容.
buildscript配置代码块:
buildscript {
repositories {
maven { url "https://repo.spring.io/plugins-release" }
}
dependencies {
classpath("io.spring.gradle:propdeps-plugin:0.0.9.RELEASE")
classpath("org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.16")
}
}
...
...
configure(allprojects)配置代码块:
configure(allprojects) { project ->
...省略部分内容...
repositories {
maven { url "https://repo.spring.io/libs-release" }
maven { url "https://repo.spring.io/snapshot" }
// for Reactor
}
...省略部分内容...
}
- 为了提高源码编译速度可以有选择的跳过一些任务,使用
./gradlew tasks
来查看当前工程可用的任务,然后有选择的排除掉这些任务.比如:
./gradlew build -x testClasses -x test -x javadoc
-x
compileTestKotlin
-
- javadoc 生成java文档
-
- test 执行单元测试
-
- testClasses 组装测试类
-
step1: 构建编译源码
进入spring-freamework目录,并执行命令编译源码.
linux:
cd spring-framework && ./gradlew build
windows:
cd spring-framework && ./gradlew.cmd build
tips:
- 在第一次编译spring源码时,因为需要下载依赖jar包和gradle插件,可能需要很长的时间.
- gradle的build命令主要用来执行编译和执行单元测试的功能.
- 第一次编译时报错,单元测试失败
Execution failed for task ':spring-webflux:test'.
,但是当我再次重新编译时,没有触发错误,多次重新编译,均未重现,所以记录一下吧.
-
setp2:使用idea/eclipse任务生成工程文件.
spring-framework的gradle脚本中已经集成了生成IDE环境的任务代码.
我们可以选择使用gradle集成的任务来生成项目文件.
IDEA
./gradlew idea
Eclipse
./gradlew eclipse
也可以选择使用IDE工具来直接导入项目.
IDEA
点击IDEA左上角的File->Open.
在Open
File or Project窗口选中下载的spring源码目录下的build.gradle文件.
之后弹出Open Project窗口,选择 Open as Project按钮.
之后在弹出的Import project from Gradle窗口,进行配置.
其中 Use auto-import可以勾选,其作用是依赖发生变化时,自动导入.
同时还需要在该窗口配置自己的Gradle.
配置完之后就可以选择 OK按钮了.
ECLIPSE
我使用的eclipse是临时下载的官网最新版本(Photon),具体如何安装eclipse可以查看eclipse安装教程.
导入过程
1.首先点击eclipse工程左上角的'File'按钮.
2.然后在弹出的下拉框中点击'Import'按钮.
3.之后在弹出'Import'面板的[Select an import wizard:]下方的输入框中输入'gradle',或者找到Gradle文件夹.
4.选中'Gradle'目录下的'Existing Gradle Project',然后点击next按钮.
5.如果出现welcome界面,直接点击next,如果没有则不处理.
6.在弹出的'Import Gradle Project'面板中 ,选择'Project root directory'后的Browse...按钮,之后在弹出窗口内,选择构建后的spring framework项目源码的根目录,点击next按钮.
7.在弹出的'import Options'面板中根据自己的需要决定是否需要配置Gradle,之后点击next按钮.
8.在弹出的'Import Gradle Project'面板中预览自己的项目信息,如果无误,点击右下方的'Finish'按钮.
9.到此,eclipse开始导入spring framework项目.
转载于:https://my.oschina.net/u/3101282/blog/1837893
最后
以上就是机灵海燕为你收集整理的spring源码之美<二>:下载spring-framework源码, 并导入到IDE工具中.基础环境的准备的全部内容,希望文章能够帮你解决spring源码之美<二>:下载spring-framework源码, 并导入到IDE工具中.基础环境的准备所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复