O que é o MOJO no Maven?

162

Estou lendo sobre o Maven agora e em todo lugar em um texto que vejo essa palavra (mojo). Compreendo aproximadamente o que isso significa, mas não recusaria uma boa explicação. Tentei pesquisar no Google, mas encontrei apenas explicações não-inventivas.

POJO - ok, mas MOJO? Maven Objeto Java antigo?

dnim
fonte
2
:) Como eu entendi - em certo sentido - é apenas jogo de palavras ...
dnim

Respostas:

167

Sim, em http://maven.apache.org/plugin-developers/index.html :

O que é um Mojo? Um mojo é um objeto Java antigo simples do Maven. Cada mojo é uma meta executável no Maven, e um plug-in é uma distribuição de um ou mais mojos relacionados.

Em resumo, um mojo é um objetivo do maven, para estender a funcionalidade ainda não encontrada no maven.

Lynn Crumbling
fonte
61

Como está escrito aqui :

Um plug-in Maven é um artefato Maven que contém um descritor de plug-in e um ou mais Mojos. Um Mojo pode ser pensado como um objetivo no Maven, e todo objetivo corresponde a um Mojo. O compiler:compileobjetivo corresponde à CompilerMojoclasse no plug-in do Maven Compiler e o jar:jarobjetivo corresponde à JarMojoclasse no plug-in do Maven Jar. Quando você escreve seu próprio plug-in, simplesmente agrupa um conjunto de Mojos (ou objetivos) relacionados em um único artefato de plug-in.

Um Mojo simplesmente se associa a uma meta do Maven, então podemos dizer que um Mojo é muito mais do que apenas uma meta no Maven.

Venky Vungarala
fonte
5
Esta é de longe a melhor resposta, lamento que você não tenha mais votos positivos! As outras respostas não fornecem mais informações do que as que já estão na documentação.
Marcv81
1
@ marcv81 Infelizmente, também não é original; copie e cole diretamente de outra fonte sem nenhuma atribuição.
precisa
Vergonha. Ainda é útil.
Marcv81 26/10/2015
16

O site Maven diz que Mojo é a combinação de "Maven" + "POJO (Plain Old Java Object)". Então, MOJO = Maven Old Java Object.

Mas outra resposta diferente no Maven: A Referência Completa, que eu acho que é do mesmo grupo de pessoas que gerencia o site do Maven, sugere que Mojo deve significar POJO Mágico.

Javateer
fonte
1
Não vejo em nenhum lugar da página que "Magical POJO" seja sugerido; se alguma coisa, a página define o que mojo significa no contexto clássico, de modo a dizer "mas isso não tem nada a ver com essa definição".
Lynn Crumbling
O POJO mágico é sugerido no último parágrafo do documento vinculado (Maven: a referência completa):Mojo? What is a Mojo? The word mojo is defined as "a magic charm or spell", "an amulet, often in a small flannel bag containing one or more magic items", and "personal magnetism; charm". Maven uses the term Mojo because it is a play on the word Pojo (Plain-old Java Object).
codefan-BK
@ codefan-BK Se o site do Maven diz que o M no Mojo significa Maven, por que você pula para pensar que está sugerindo que Magical POGOsim? Já está definido.
Lynn Crumbling
2
@ Lynn Crumbling Tomando a definição seguindo o link que você forneceu, sua resposta curta é exaustiva. Mas, com relação à explicação adicional no segundo link fornecida por Javateer, revela que as pessoas que decidiram pelo nome Mojo pensavam em brincar com a palavra mágica também. Então, vocês dois estão certos, você e Javateer. Ambas as explicações apenas lançaram luz sobre duas facetas do mesmo assunto. Não sinto contradição aqui, devo?
codefan-BK
2
  • MOJO ( M aven O ld J ava O bject) é uma meta em Maven.

  • No maven, tudo é feito por plugin, um plugin possui um ou mais mojos relacionados, ou seja, objetivos.

  • Mojo é uma única unidade de tarefa no maven.

por exemplo: elicpse:eclipseo plug-in eclipse com objetivo eclipse é um MOJO

Premraj
fonte