Как Maven упаковывает только классы, на которые есть ссылки?

#java #maven #maven-assembly-plugin

#java #maven #maven-assembly-plugin

Вопрос:

Maven 3.

2 модуля: M1 и M2

В M2 есть класс с именем B.class который будет ссылаться A.class , A.class находится в первом модуле M1. M1 имеет много классов, например, 100 классов в качестве примера.

Когда я выполняю команду под M2, возможно ли только упаковать B.class и A.class в банку , а не B.class а все классы в M1 ?

 mvn clean package
  

Ответ №1:

Плагин Maven shade может создавать минимизированные банки, содержащие только используемые вами классы.

Комментарии:

1. должен ли я исключить классы из файла конфигурации? может ли он автоматически исключить все классы, на которые нет ссылок?

2. <minimizeJar>true</minimizeJar> должно быть достаточно, чтобы сделать это автоматически.

3. Большое спасибо, это то, что я искал несколько дней ~!!