Компиляция исходного кода Spring так проста

Spring
Компиляция исходного кода Spring так проста

Как мы все знаем, 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
Вы можете видеть, что версия gradle, требуемая в дистрибутивеUrl, **4.10.3**, перейдите на официальный сайт, чтобы загрузить релизную версию этой версии, затем установите (распакуйте), настройте переменные среды (автор использует ubuntu20.04 , переменные окружения windows Конфигурация может быть сделана через Baidu, так что не буду вдаваться в подробности)
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
存放的位置)
После настройки переменных среды вам необходимо настроить загрузку пакета jar из зеркального репозитория Alibaba Cloud, что может значительно увеличить скорость загрузки.
cd /home/mojito/application/gradle/gradle-4.10.3/init.d(以自己安装gradle的目录为准)
touch init.gradle
Содержимое файла 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-адрес в первое поле ввода, нажмите «Импорт» и дождитесь завершения.

После завершения можно получить среднюю скорость доступа