1. Проект фон
Spring Cloud создает Spring Boot Projects, уточняет уровни каждого проекта и достигает цели уменьшения связи. Проекты основаны на спокойном общении.
Во время процесса упаковки проекта используйте плагин Spring-Boot-Maven-Plugin, чтобы упаковать его, и генерируется жирная банка. Если упаковка JAR рассказан, вы обнаружите, что пакет JAR, от которого зависит проект, хранится в папке LIB в разделе Boot-Inf. После анализа нескольких подпроектов вы обнаружите, что одно и то же учетное значение для пакетов JAR для подавляющего большинства. Затем, каждый раз, когда он развернут в онлайн -среде, общие банки каждой системы фактически неоднократно отложены на сервере. Следовательно, вы, естественно, подумаете о том, есть ли способ извлечь общий пакет JAR или пакет JAR, который не часто модифицируется, сортировать отдельную копию, а затем использовать внешнюю нагрузку для достижения цели потери веса с помощью жирных банок.
2. Жирная банка для похудения
После приведенного выше анализа и рассмотрения соответствующей информации мы разобрались следующие шаги, чтобы сделать похудение JAR-Package:
1. Каждый проект настраивает плагин с пружиной-грудью-плугином (официальный документ), чтобы создать пакет JAR, оставленный в жирной банке
<blicin> <groupid> org.springframework.boot </GroupId> <ArtifactId> Spring-boot-maven-plugin </artifactid> <poncipuration> <mayout> Zip </layout> <!-<ExcludeGroupids> org.springframework.boot, org.spramework.cloud, org.mybatiswork.boot, org.spramework.cloud, org.mybatis.boot.boot, org.spramework. Tk.mybatis, Mysql, Com.alibaba, Javax.persistence, io.springfox, org.springframework.session </excludegroupids> -> <clact> <clact> <groupid> xx </GroupId> <strifactid> xx </artifactid> </includ> <clack> <groupd> <groupid> xx </artifactid> </includ> <clact> <groupd> <groupid> </xx </artifactid> </includ> <groupd> <groupid> <brightid> <artifactid> xx </artifactid> </include> </incluct> </configuration> </placin>
Как и в случае приведенного выше кода, вы можете использовать ExcudeGegroupids или включить, или другие теги, в зависимости от ситуации.
2. Извлеките пакеты банок, которые вы не хотите хранить в жирной банке из банки зависимости проекта.
Метод 1 (рекомендуется): добавьте плагин Maven Degy Deginence в файл Project POM (официальный документ)
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependent-plugin</artifactId> <version>3.1.1</version> <executions> <execution> <id>copy-dependents</id> <phase>package</phase> <goals> <goal>copy-dependents</goal> </goals> <configuration> <!-- <putdirectory> e:/lib </outputDirectory>-> <cecligudeGroupids> <!-Остаться в значении атрибута FAT Group (множественные, разделенные) пакета JAR в JAR-> </ExcludeGroupids> <OverwritesNapShots> true </overwritesnapshots> </configuration> </выполнение> </выполнение> </плагин> </uperwritesnapshots> </configuration> </CEECTUTION>
Проверьте официальный документ, чтобы узнать конкретное значение тега.
При использовании Maven для упаковки проекта используйте команду Maven:
MVN Clean Install -dmaven.test.skip = true -doutputdirectory = e:/lib (-doutputdirectory = e:/lib -это путь, экспортируемый пакетом JAR, на котором проект зависит от динамического.
После того, как плагин на конфигурации выполняет эту команду, за исключением пакета JAR, настроенного в тег ExcudeDudeGroupids, остальная часть проекта будет импортирована в указанный каталог, а избыточные пакеты JAR в жирной банке будут извлечены.
Метод 2: Не добавляйте плагин Maven Degy Dependence в проект и напрямую используйте MVN для копирования команд, которые зависят от пакета JAR для проекта. Этот метод требует копирования зависимости каждого подпроекта один за другим, и можно использовать несколько подпроектов.
Зависимость MVN: копия -зависимости -doutputDirectory = e:/lib (если динамически указан каталог, каталог зависимостей будет генерироваться по умолчанию в целевом пути проекта)
Поместите пакеты JAR для зависимости, экспортируемые каждым проектом в папку, удалите дублирование и удалите пакеты JAR для зависимости, зарезервированные в жирной банке, а затем заполните удаление избыточных пакетов JAR в жирной банке.
3. Поместите извлеченный пакет JAR в определенный путь сервера, настройте скрипт запуска проекта и загрузите его снаружи.
nohup java -dloader.path = "xx/lib" -jar xx.jar
-Dloader.path -это внешний адрес загрузки.
После похудения вы можете увидеть в пакете JAR после упаковки проекта. В LIB в разделе Boot-Inf есть только необходимые пакеты банков, которые значительно уменьшают размер жирной банки.
Конфигурация POM может использоваться в системе MicroService для формирования унифицированной конфигурации, а зависимости пакета JAR в каждом проекте изменяются в зависимости от конкретной ситуации.
3. Проблемы, встречающиеся и решения
В процессе похудения это не было плавным плаванием. Когда я подумал, что работа была выполнена, и начал проект, я обнаружил, что стартап не удался, а JAR противоречит.
1. Разрешить конфликты пакета JAR, проанализировать зависимости пакетов JAR через команду MVN, найти конфликтующие пакеты JAR и объединить версию.
В Eclipse я создал новую сборку Maven. Вначале я попробовал MVN -зависимость: Tree и проанализировал зависимость от пакета JAR в целом, но не обнаружил зависимости пакета JAR. Затем я попробовал MVN -зависимость: Tree -DVERBOSE и проанализировал всю косвенную неявную зависимость в целом и до сих пор не нашел зависимость от пакета JAR.
На данный момент я подозреваю, что в проекте нет пакета JAR. После повторной упаковки я вижу, что эта проблема действительно в зависимости от проекта, но она слишком глубоко скрыта. Следовательно, только анализы могут быть выполнены для одного пакета JAR:
MVN Зависимость: Tree -dverbose -dincludes = xx: xx: xx (xx: xx: xx, соответствующий пакете JAR GroupId: artifactid: версия)
После использования Dincludes можно найти зависимость соответствующего пакета JAR, а в проекте исключается пакет JAR. После снова упаковки проект начинается успешно, и проблема решается.
2. Во время процесса упаковки некоторые субпроекты не использовали плагин с пружиной-грудью-плугином, но использовали Maven-Jar-Plugin для непосредственного упаковки в бегущую банку. После сочетания конфигурации похудения жирной банки было обнаружено, что банка, которая могла полагаться на совместимые, теперь потерпела неудачу. Поскольку жирные банки похудят, только банки проектов, код которого часто изменяется, остаются, а зависимости не передаются в запускаемых банках, поэтому вам необходимо явно зависеть от пакета JAR необходимого проекта в этом проекте, чтобы обеспечить полноту проекта.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.