#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