Автоматический анализ похудения
Размер пакета JAR в окончательной конструкции проекта Spring Boot всегда подвергался критике, и все зависимые пакеты должны быть встроены в окончательный выходной исполняемый файл jar. Конечно, вы можете использовать другие подключаемые модули для разделения зависимого JAR-файла и исполняемого jar-файла, см.slot-maven-plugin, но этот метод не может уменьшить размер исходного зависимого JAR.
Spring Boot 2.4 предоставляет функцию автоматического уменьшения размера анализа JAR вывода сборки и автоматического удаления вывода сборки, когда JAR готов к запуску.empty starter dependencies
Показать результаты
Давайте создадим исполняемый jar-файл на основе Spring Boot 2.4.0 и Spring Boot 2.3.6 соответственно, а затем поговорим о том, чтоempty starter
- использоватьstart.spring.ioСоздайте пустой проект Spring Boot,Обратите внимание, что нет необходимости вводить какие-либо зависимости
- mvn clean install создает соответствующие исполняемые файлы jar
- Извлеките две банки отдельно в два разных каталога.
tar -zxvf demo-2.3.6.jar -C demo-2.3.6/
tar -zxvf demo-2.4.0.jar -C demo-2.4.0/
- Подсчитывая количество зависимых банок, 2.3.6 имеет в общей сложности 19 зависимых банок, а 2.4.0 имеет только 18 зависимых банок, отсутствует spring-boot-starter.jar
cd demo-2.3.6/BOOT-INF/lib && ll -h | wc -l
19
cd demo-2.4.0/BOOT-INF/lib && ll -h | wc -l
18
что такое пустой стартер
Как упоминалось выше, мы ввели его по умолчанию, когда создавали проект на основе start.spring.io, но этот класс будет автоматически удален в Spring Boot 2.4.empty starter dependencies
jar
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
Давайте посмотрим, что особенного в spring-boot-stater?
- ① Пустая банка не содержит кода
- ② Есть ссылки на другие банки, только для импорта других банок партиями
Таким образом, этот тип jar нецелесообразен, когда он встроен в исполняемый jar, потому что зависимые jar, импортированные партиями, могут быть импортированы. В настоящее время предоставляется Spring Bootredis
,amqp
Большинство стартеров являются такими jar-файлами, поэтому после сборки они будут автоматически удалены.
Индивидуальная банка для достижения автоматического похудения
- Создайте
MANIFEST.MF
метаинформация пакета jar, добавьте строкуSpring-Boot-Jar-Type: dependencies-starter
Просто
resources
├── META-INF
└── MANIFEST.MF