¿Qué es MOJO en Maven?

162

Estoy leyendo sobre Maven en este momento y en todas partes en un texto que veo esta palabra (mojo). Entiendo aproximadamente lo que significa, pero no me negaría por una buena explicación. Traté de buscar en Google, pero encontré solo explicaciones no expertas.

POJO - ok, pero MOJO? Maven Old Java Object?

dnim
fuente
2
:) Como he entendido - en cierto sentido - es sólo el juego de palabras ...
DNIM

Respuestas:

167

Sí, de http://maven.apache.org/plugin-developers/index.html :

¿Qué es un mojo? Un mojo es un objeto Java antiguo simple de Maven. Cada mojo es un objetivo ejecutable en Maven, y un complemento es una distribución de uno o más mojos relacionados.

En resumen, un mojo es un objetivo de Maven, para ampliar la funcionalidad que aún no se encuentra en Maven.

Lynn desmoronando
fuente
61

Como está escrito aquí :

Un complemento de Maven es un artefacto de Maven que contiene un descriptor de complemento y uno o más Mojos. Un Mojo puede considerarse como un objetivo en Maven, y cada objetivo corresponde a un Mojo. El compiler:compileobjetivo corresponde a la CompilerMojoclase en el Complemento Maven Compiler, y el jar:jarobjetivo corresponde a la JarMojoclase en el Complemento Maven Jar. Cuando escribe su propio complemento, simplemente está agrupando un conjunto de Mojos (u objetivos) relacionados en un solo artefacto de complemento.

Un Mojo simplemente se asocia con un objetivo de Maven, por lo que podemos decir que un Mojo es mucho más que un objetivo en Maven.

Venky Vungarala
fuente
55
Esta es, de lejos, la mejor respuesta, ¡siento que no tengas más votos a favor! Las otras respuestas no dan más información de la que ya está en la documentación.
marcv81
1
@ marcv81 Desafortunadamente, tampoco es original; copiar y pegar directamente de otra fuente sin ninguna atribución.
Lynn Desmoronando
Vergüenza. Sin embargo, sigue siendo útil.
marcv81
16

El sitio de Maven dice que Mojo es la combinación de "Maven" + "POJO (Plain Old Java Object)". Entonces, MOJO = Maven Old Java Object.

Pero otra respuesta diferente en Maven: La referencia completa, que creo que es del mismo grupo de personas que administran el sitio de Maven, sugiere que Mojo significa POJO Mágico.

Javateer
fuente
1
No veo en ninguna parte de la página que se sugiera "POJO mágico"; en todo caso, la página define lo que significa mojo en el contexto clásico, para decir "pero eso no tiene nada que ver con esta definición".
Lynn Desmoronando el
El POJO mágico se sugiere en el último párrafo del documento vinculado (Maven: The Complete Reference):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 Si el sitio de Maven dice que la M en Mojo significa Maven, ¿por qué darías el salto a pensar que sugiere que sí lo es Magical POGO? Ya esta definido.
Lynn Desmoronando el
2
@Lynn Crumbling Tomando la definición siguiendo el enlace que proporcionó solo, su respuesta breve es exhaustiva, de hecho. Pero con respecto a la explicación adicional en el segundo enlace dado por Javateer, revela que las personas que decidieron el nombre Mojo también pensaron en jugar con la palabra mágica. Entonces ambos tienen razón, usted y Javateer. Ambas explicaciones arrojan luz sobre dos facetas del mismo tema. No siento contradicción aquí, ¿debería?
codefan-BK
2
  • MOJO ( M aven O ld J ava O bject) es una meta en Maven.

  • En Maven, todo se hace mediante un complemento, un complemento tiene uno o más mojos relacionados, es decir, objetivos.

  • Mojo es una sola unidad de tarea en Maven.

por ejemplo: elicpse:eclipseel complemento eclipse con objetivo eclipse es un MOJO

Premraj
fuente