Разница между —also-make и —also-make-зависимыми

#maven

#maven

Вопрос:

Недавно я узнал о --also-make параметре, который вы можете передать в Maven. Насколько я понимаю, это приводит к тому, что не только my-project будет выполнена сборка, но и все проекты, зависящие от my-project.

 mvn --projects my-project --also-make install
  

Но есть также другой вызываемый параметр --also-make-dependents . Из описания похоже, что это делает то же самое, что и --also-make , но мой друг на работе сказал мне, что это не одно и то же. В чем же разница?

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

1. Обратитесь к maven.apache.org/ref/3.3.9/maven-embedder/cli.html : -amd : Если указан список проектов, также создавайте проекты, которые зависят от проектов в списке

Ответ №1:

  • --also-make создает все проекты, которые my-project зависят от
  • --also-make-dependents создает все проекты, которые зависят от my-project

Если вы представляете DAG (направленный ациклический граф) зависимостей между проектами (где ребро A -> B означает, что B зависит от A), то --also-make строит все проекты из project my-project в «корневые» проекты и --also-make-dependents строит все проекты из project my-project в «конечные» проекты.

Пример

Допустим, у вас есть следующие проекты:

  dao     util
        /
  services
     | 
   webapp
  

Затем

mvn --projects services --also-make

будут построены dao , util и services . И

mvn --projects services --also-make-dependents

будет строить services и webapp