Minha definição de maven é:
Ok, eu sei que é meio recursivo, mas sinceramente? O maven faz ~apenas~ isso. "Apenas".
Gerenciar dependências vocês entendem, né? Fazer download disso, calcular a versão a baixar, etc, etc. Super complexo de implementar, mas simples de entender.
Entenda um plugin do maven como um executável qualquer, que tenha qualquer objetivo. Um plugin tem um "nome" e a lista de "goals", comandos.
Então, quando vossa senhoria executa mvn dependency:tree, é uma simples invocação do goal "tree" do plugin "dependency". Mole?
Acontece que o maven tem os seus ciclos de vida. São apenas três: clean, default, site. Vou colar aqui as fases do "default", que é o que usamos mais:
É uma sequência, isto é "mvn install" fará tudo o que "mvn verify" faz e mais alguma coisa. Assim como o "deploy" apenas ocorre após o "install"
Ciclo de vida é apenas uma maneira de simplificar e ordenar a chamada dos plugins.
Entenda que a cada fase, um ou mais plugins poderão ser chamados. Por padrão, o maven já faz a ligação de alguns plugins a determinadas fases (e vc não consegue desfazer essa ligação. Você pode adicionar plugins, nunca retirar). Dê uma olha em Lifecycle Bindings.
Para adicionar plugins ao seu ciclo de vida não é difícil: existe uma seção chamada "plugins" dentro do seu pom.xml; na configuração do plugin, você pode dizer a que fase ele está ligado. Caso você não especifique, o plugin/goal já virá com uma fase padrão.
A saber: o ciclo de vida de "site" é utilizado pelo plugin de release.
Maven serve para gerenciar dependências e executar plugins do maven
Ok, eu sei que é meio recursivo, mas sinceramente? O maven faz ~apenas~ isso. "Apenas".
Gerenciar dependências vocês entendem, né? Fazer download disso, calcular a versão a baixar, etc, etc. Super complexo de implementar, mas simples de entender.
Entenda um plugin do maven como um executável qualquer, que tenha qualquer objetivo. Um plugin tem um "nome" e a lista de "goals", comandos.
Então, quando vossa senhoria executa mvn dependency:tree, é uma simples invocação do goal "tree" do plugin "dependency". Mole?
Acontece que o maven tem os seus ciclos de vida. São apenas três: clean, default, site. Vou colar aqui as fases do "default", que é o que usamos mais:
| validate |
| initialize |
| generate-sources |
| process-sources |
| generate-resources |
| process-resources |
| compile |
| process-classes |
| generate-test-sources |
| process-test-sources |
| generate-test-resources |
| process-test-resources |
| test-compile |
| process-test-classes |
| test |
| prepare-package |
| package |
| pre-integration-test |
| integration-test |
| post-integration-test |
| verify |
| install |
| deploy |
É uma sequência, isto é "mvn install" fará tudo o que "mvn verify" faz e mais alguma coisa. Assim como o "deploy" apenas ocorre após o "install"
Ciclo de vida é apenas uma maneira de simplificar e ordenar a chamada dos plugins.
Entenda que a cada fase, um ou mais plugins poderão ser chamados. Por padrão, o maven já faz a ligação de alguns plugins a determinadas fases (e vc não consegue desfazer essa ligação. Você pode adicionar plugins, nunca retirar). Dê uma olha em Lifecycle Bindings.
Para adicionar plugins ao seu ciclo de vida não é difícil: existe uma seção chamada "plugins" dentro do seu pom.xml; na configuração do plugin, você pode dizer a que fase ele está ligado. Caso você não especifique, o plugin/goal já virá com uma fase padrão.
A saber: o ciclo de vida de "site" é utilizado pelo plugin de release.
Nenhum comentário:
Postar um comentário