网站开发公司云鲸互创实惠wordpress移动版主题
网站开发公司云鲸互创实惠,wordpress移动版主题,企业网站维护合同,太仓网站公司1.写在前面的话
碰到了不少想阅读或者学习spring源码的同学#xff0c;但是第一步搭建这个源码阅读环境就能难倒了一大批人。下面我就以spring5.3.x这个源码分支#xff0c;来具体演示一下搭建过程。
2. 下载源码
下载源码这一步#xff0c;说实话#xff0c;由于某些原…1.写在前面的话
碰到了不少想阅读或者学习spring源码的同学但是第一步搭建这个源码阅读环境就能难倒了一大批人。下面我就以spring5.3.x这个源码分支来具体演示一下搭建过程。
2. 下载源码
下载源码这一步说实话由于某些原因会导致我们用git做clone的时候老是中断clone不下来。所以我们可以先把github的源码复制到gitee上然后从gitee上来下载。
打开spring的在github的源码地址https://spring.io/projects/spring-framework复制git的clone地址https://github.com/spring-projects/spring-framework.git打开gitee:https://gitee.com/,登录完成后点击右上角的从Github/GitLab导入仓库 在Git 仓库URL中输入spring源码的clone地址点击导入稍微等一会就完成了。 这样我们就把spring源码导入到自己的gitee仓库中方便我们日后学习过程的中的文件提交。在本地将spring源码从我们的gitee代码库中clone下来
git clone -b 5.3.x https://gitee.com/xxxx/spring-framework.git稍等一下源码就下载成功了。
3. 安装gradle
3.1 确定gradle的版本
因为spring源码是用gradle构建的所以我们要先安装gradle。特别注意的是gradle的版本必须和spring源码中要求的一致否则会报错。版本信息在源码中的位置 D:\studyspace\spring-framework-5.3.x\spring-framework\gradle\wrapper\gradle-wrapper.properties
distributionBaseGRADLE_USER_HOME
distributionPathwrapper/dists
distributionUrlhttps\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
zipStoreBaseGRADLE_USER_HOME
zipStorePathwrapper/dists这里我们看到使用的是7.5.1这个版本。
3.2 下载gradle
从https://gradle.org/releases/ 选择的版本7.5.1下载。
3.2 解压安装gradle
在本机上某个目录下解压下载的gradle,这里我放到了 D:\javaenv\gradle-7.5.1 这个目录下。 然后再这个目录下新建.gradle即D:\javaenv\gradle-7.5.1.gradle
3.3 创建初始化文件配置仓库地址
在init.d文件夹下创建gradle初始化配置文件init.gradle然后在这个文件配置仓库地址。 D:\javaenv\gradle-7.5.1\init.d 在这个文件下创建init.gradle内容如下
allprojects{repositories {mavenLocal()maven { url https://maven.aliyun.com/repository/public/ }maven { url https://maven.aliyun.com/repository/jcenter/ }maven { url https://maven.aliyun.com/repository/google/ }maven { url https://maven.aliyun.com/repository/gradle-plugin/ }maven { url https://jitpack.io/ }maven { url https://maven.aliyun.com/repository/spring/ }}
}settingsEvaluated { settings -settings.pluginManagement {// Clear repositories collectionrepositories.clear()// Add my Artifactory mirrorrepositories {mavenLocal()maven {url https://maven.aliyun.com/repository/gradle-plugin/}}}
}这里一定要注意必须配置https://maven.aliyun.com/repository/spring/。这里说一下原因吧。 我们在导入Spring源码时总是无法下载com.ibm.websphere:uow:6.0.2.17包如果我们换上https://repo.spring.io/libs-release 这个仓库地址的话会报401错误没有认证。如果我们使用阿里云的https://maven.aliyun.com/repository/public/这个仓库会找不到这个包。那为什么在public下会找不到这个包呢 因为发现public仓库并不包含spring仓库所以需要增加https://maven.aliyun.com/repository/spring这个仓库地址。
3.4 配置gradle环境配置
这里我就以我的电脑为例说一下需要配置的参数具体操作自己去配就行了很简单。 第一个参数
参数值GRADLE_HOMED:\javaenv\gradle-7.5.1GRADLE_USER_HOMED:\javaenv\gradle-7.5.1.gradlepath里加上gradle命令路径%GRADLE_HOME%\bin
3.5 验证gradle
gradle --version这样gradle就配置完成了。
4. 配置idea环境
1.用idea打开spring源码这时基本上会自动下载项目所需要的包但是我们还没有配置好我们的idea所以暂时先将build都停止掉 2.配置project Structure 中的jdk版本这里我使用的是jdk8 3.安装aspectj编译插件spring-aop和spring-aspects项目需要此插件编译 在idea的Settings中找到Plugins,搜索AspectJ 4.安装AspectJ 1.aspectj的下载地址如下 https://www.eclipse.org/aspectj/downloads.php这里我选择最新的一个包下载 这里我下载到了D:\javaenv 目录下 右键打开终端执行
java -jar aspectj-1.9.6.jar这时会弹出选择 2.选择下一步 选择jdk 在D:\javaenv新建目录aspectj1.9然后下一步选择 然后选择Install,安装完成。 5.在idea中配置aspectj编译环境注意这里需要重新启动idea,否则上面aspectj插件不生效。 在idea的Settings中的Java Compiler将Use compiler 设置为Ajc;同时在Ajc Options也做响应的配置如下图所示 6.将spring-aop和spring-aspects两个module添加aspect编译环境 由于我这里已经配置过了所以看不到选项。配置完如下 7.在idea中配置gradle仓库 8.修改项目中的中央仓库配置共三个位置 第一个位置D:\studyspace\spring-framework-5.3.x\spring-framework\buildSrc 下的build.gradle 配置如下
repositories {mavenLocal()maven { url https://maven.aliyun.com/repository/public/ }maven { url https://maven.aliyun.com/repository/jcenter/ }maven { url https://maven.aliyun.com/repository/google/ }maven { url https://maven.aliyun.com/repository/gradle-plugin/ }maven { url https://jitpack.io/ }maven { url https://maven.aliyun.com/repository/spring/ }mavenCentral()gradlePluginPortal()
}第二个位置D:\studyspace\spring-framework-5.3.x\spring-framework源码目录下的settings.gradle
pluginManagement {repositories {mavenLocal()maven { url https://maven.aliyun.com/repository/public/ }maven { url https://maven.aliyun.com/repository/jcenter/ }maven { url https://maven.aliyun.com/repository/google/ }maven { url https://maven.aliyun.com/repository/gradle-plugin/ }maven { url https://jitpack.io/ }maven { url https://maven.aliyun.com/repository/spring/ }mavenCentral()gradlePluginPortal()}
}第三个位置D:\studyspace\spring-framework-5.3.x\spring-framework源码目录下的build.gradle repositories {mavenLocal()maven { url https://maven.aliyun.com/repository/public/ }maven { url https://maven.aliyun.com/repository/jcenter/ }maven { url https://maven.aliyun.com/repository/google/ }maven { url https://maven.aliyun.com/repository/gradle-plugin/ }maven { url https://jitpack.io/ }maven { url https://maven.aliyun.com/repository/spring/ }mavenCentral()gradlePluginPortal()}5. 编译工程
5.1 下载依赖
点击idea右边的gradle,刷新gradle,等待所有依赖下载完毕
5.2 编译spring-oxm子项目
执行spring—spring-oxm—task-other下的compileTestJava插件
5.3 编译整个工程
执行spring—Tasks—build下的build插件 等待几分钟编译完毕即可。 但是在编译过程中还可能会出现各种错误这时候我们可以多build几次实在不行就重启下idea,再次build就会成功。
6.测试
6.1 新建gradle的module 6.2 给新建的spring-study的添加依赖 dependencies {api(project(:spring-beans))api(project(:spring-core))api(project(:spring-tx))api(project(:spring-aop))api(project(:spring-context))api(project(:spring-expression:))testImplementation org.junit.jupiter:junit-jupiter-api:5.8.1testRuntimeOnly org.junit.jupiter:junit-jupiter-engine:5.8.1
}6.3 创建测试代码
1.创建Student类
package org.springframework.study.domain;/*** author lxc* createTime 2024-02-01 16:06* description*/
public class Student {/*** id编号*/private Long id;/*** 姓名*/private String name;/*** 年龄*/private Integer age;public Long getId() {return id;}public void setId(Long id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age age;}Overridepublic String toString() {return Student{ id id , name name \ , age age };}
}
2.在Main中编写main方法测试
package org.springframework;import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.study.domain.Student;public class Main {public static void main(String[] args) {ClassPathXmlApplicationContext context new ClassPathXmlApplicationContext(applicationContext.xml);Student student context.getBean(student, Student.class);System.out.println(student);}
}3.查看结果
6.小结
这样我们整个spring的源码就搭建成功了可以进行学习和研究。从上面的步骤来看其实还是很复杂的尤其的环境会出现各种意向不到的问题。这里只是我的一个搭建过程可能大家在自己电脑上搭建还会遇到其他的一些问题这里就需要自行解决了。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/89753.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!