概述
本文基于IDEA19,jdk1.8,GradleWapper,来编译的spring5源码
1、首先去github下载源码GitHub - spring-projects/spring-framework: Spring Frameworkhttps://github.com/spring-projects/spring-framework本次下载的5.2.x版本的。推荐大家使用git clone来进行下载,不要使用zip包来进行编译。
可以避免后续编译过程之中一个git的报错。
org gradle.process.internal.ExecException:Process 'command' git '' finished with non-zero exit value 128
2、编译前的准备工作,进到源码的根目录。
(1)打开build.gradle文件,找到 repositories 标签,修改仓库地址为阿里云的地址,这样编译起来会快很多。
加上如下这2行:
maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/'}
maven{ url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
如下代码片段所示:
repositories {
maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/'}
maven{ url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
mavenCentral()
maven { url "https://repo.spring.io/libs-spring-framework-build" }
}
(2)打开 settings.gradle 文件,找到 pluginManagement 标签,也加上阿里云仓库地址。
加上这行: maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
如下代码片段所示:
pluginManagement {
repositories {
gradlePluginPortal()
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
maven { url 'https://repo.spring.io/plugins-release' }
}
}
3、预编译源码。打开spring源码的路径,cmd命令输入
gradlew :spring-oxm:compileTestJava
这一步大概需要5到10分钟吧,视网速的快慢而定。首次编译要先远程下载对应版本的gradle,也会相应的慢点。
出现 BUILD SUCCESSFUL in **s 就表示编译成功。
编译过程常见问题:
1、如下插件的权限失败问题:
Error resolving plugin [id: 'io.spring.gradle-enterprise-conventions', version: '0.0.2']
Received status code 401 from server: Unauthorized
原因是 build.gradle 文件之中存在 该插件,阿里云之中没有该版本插件导致的。
解决办法一:直接注释掉该插件
解决办法二:打开阿里云仓库仓库服务,搜索该插件
发现该插件版本是 0.04,所以修改该行版本为 0.04 也可以,如下图所示
4、导入到IEDA之中。File -> open -> 找到源码的根目录,打开即可。
注意:打开以后,ctrl+alt+s,找到如下图所示的gradle配置,确保 Use Gradle from这个选项,选择的是 'gradle-wapper.properties'file这个选项,这样的话,就会使用远程的gradle版本,自己本地的gradle就不会产生异常影响。
然后等待IDEA编译完成即可。
编译完成以后。项目的目录下都有蓝色的小方块,表示编译完成。如下图所示:
5、新建一个模块进行自测。
在项目的目录,右击,New -> Module
然后选择 gradle
点击 Next,设置好对应的Name 即可。也就是ArtifactId
然后,打开刚才新建的项目,打开build.gradle文件,加上如下一行,下图所示位置
compile(project(":spring-context"))
在 src 目录下新建一个package : com.duan.conf
然后新建一个测试bean:Person.java如下所示,使用 @Component 注解修饰。
@Component
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + ''' +
", age=" + age +
'}';
}
}
然后新建一个测试类 MyConfig.java
@Configuration
@ComponentScan(basePackages = {"com.duan.conf"})
public class MyConfig {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
Person person = context.getBean(Person.class);
person.setName("duanNFF");
person.setAge(666);
System.out.println(person);
}
}
最后运行main方法,可以看到如下结果,则spring源码环境就大功告成了。
最后
以上就是老实金鱼为你收集整理的Spring5.2.x+IDEA2019源码环境搭建的全部内容,希望文章能够帮你解决Spring5.2.x+IDEA2019源码环境搭建所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复