spring源码导入笔记:(url:github.com/wb02125055/… 1、在gradle解压路径下,init.d中新建init.gradle文件,内容如下
allprojects{
repositories {
def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
all { ArtifactRepository repo ->
def url = repo.url.toString()
if ((repo instanceof MavenArtifactRepository) && (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com'))) {
project.logger.lifecycle 'Repository ${repo.url} replaced by $REPOSITORY_URL .'
remove repo
}
}
maven {
url REPOSITORY_URL
}
}
}
2、编辑源码根目录下的build.gradle,注掉configurations.all ,增加为如下配置
allprojects {
repositories {
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
}
3、编辑源码根目录下的gradle.properties,增加以下配置
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true
4、为防止出现(Error:(30, 0) No such property: values for class: org.gradle.api.internal.tasks.DefaultTaskDependency错误) 在spring-beans目录下的spring-beans.gradle中将28行注解掉。
compileGroovy.dependsOn = deps - "compileJava"
5、在setting.gradle文件第一行添加如下配置
repositories {
maven { url "https://maven.aliyun.com/repository/public" }
gradlePluginPortal()
maven { url 'https://repo.spring.io/plugins-release' }
}
}
build顺序: core--oxm--context--beans--aspects--aop gradle工程--tasks--other-compileTestJava
自建module需要引入模块依赖 dependencies{ compile(project(":spring-context")) }
错误类型以及解决方案:
1、IDEA 编译Spring5源码时,报错:找不到InstrumentationSavingAgent 修改spring-context模块的gradle配置 optional(project(":spring-instrument"))改成compile(project(":spring-instrument"))