Как мы все знаем, Spring стал корпоративным стандартом для разработки javaEE. Столкнувшись с этим таинственным черным ящиком, мы все обескуражены. Но "спросите, где я могу получить этот чистый, только источник живой воды", если я хочу досконально понять принцип весны, изучение исходного кода - это препятствие, которое мой Java-инженер не может обойти. Первым шагом в изучении исходного кода Spring является сборка среды исходного кода Spring локально, что также является темой всех сегодняшних обсуждений автора. Без лишних слов, давайте перейдем непосредственно к сегодняшней теме.
[Подготовка окружающей среды]
Один, jdk1.8
2. Создайте градиент инструмента
После весны 4 весна опирается наgradleBuild, gradle — это современный инструмент для сборки проектов, похожий на maven, поэтому я не буду здесь вдаваться в подробности. Сообщество Gradle очень активно, и вы можете получить представление о его ситуации после выпуска версии.Перед лицом такого количества версий Gradle выбор версии Gradle при сборке исходного кода Spring является большой проблемой для начинающих. . Во-вторых, как настроить gradle, чтобы улучшить скорость сборки?
Выбор версии gradle следующий, откройте домашнюю страницу githuab spring (этот веб-сайт в Китае немного медленнее, вы можете использовать gitee для импорта проектов github в gitee для повышения скорости доступа, см. Приложение A), выберите нужную ветку, автор берет 5.1.x в качестве примера для просмотра файла /gradle/wrapper/gradle-wrapper.properties.
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
export GRADLE_HOME=/home/mojito/application/gradle/gradle-4.10.3(gradle的主目录)
export PATH=$GRADLE_HOME/bin:$PATH
export GRADLE_USER_HOME=/home/mojito/application/gradle/repository(grale下载的jar
存放的位置)
cd /home/mojito/application/gradle/gradle-4.10.3/init.d(以自己安装gradle的目录为准)
touch init.gradle
allprojects{
repositories {
def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (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
}
}
}
После того, как все будет сделано, проверьте, готово ли оно, и выполните команду, чтобы она появилась, как показано на рисунке ниже.
gradle --version
[начать строительство]
Строительство может относиться кspring build from source(Здесь не рекомендуется использовать команду gradlew, потому что эта команда не требует от вас локальной установки gradle и автоматически загрузит из Интернета двоичный файл соответствующей версии gradle в качестве основы для сборки проекта, но эта загрузка работает медленно и сильно влияет на скорость сборки. Рекомендуется действовать следующим образом)
1. Загрузите исходный код
Мы импортировали Spring в gitee, и скорость клонирования или загрузки zip-пакета очень высока.Сначала загрузите исходный код Spring на локальный сервер. Каталог автора: /home/mojito/workspace/opensource/spring-framework.
2. Начните строить
1.进入源码目录 cd /home/mojito/workspace/opensource/spring-framework
2.编译oxm模块 gradle cleanIdea :spring-oxm:compileTestJava
3.导入idea 1).新建一个项目(项目随意)
2).建好项目后 File -> New -> Project from Existing Sources
-> Navigate to directory -> Select build.gradle
4.配置当前项目的gradle环境(不配置的会用wrapper中的配置从网上下载gradle,
这里下载很慢,所以建议手动配置gradle,因为本地安装了gradle)
После выполнения вышеперечисленных действий просто дождитесь завершения построения, если скорость сети высокая, то вам потребуется более 20 минут, чтобы насладиться исходным кодом ароматной весны.
[приложение]
A: импорт проекта github gitee
- Получить адрес клона гитхаба проекта (адрес https у клона на рисунке ниже)
- Выберите, чтобы импортировать проект из github на gitee
- Введите скопированный URL-адрес в первое поле ввода, нажмите «Импорт» и дождитесь завершения.
После завершения можно получить среднюю скорость доступа