¿Qué es el empaquetado "pom" en maven?

Resuelto Derek asked hace 12 años • 10 respuestas

Me dieron un proyecto maven para compilarlo e implementarlo en un servidor Tomcat. Nunca antes había usado maven, pero he estado buscando bastante en Google. Parece que los pom.xmlarchivos de nivel superior de este proyecto tienen el tipo de paquete configurado como pom.

¿ Qué se supone que debo hacer después mvn installpara implementar esta aplicación? Esperaba poder encontrar un wararchivo en alguna parte o algo así, pero supongo que estoy buscando en el lugar equivocado o me estoy perdiendo un paso.

Derek avatar Oct 08 '11 02:10 Derek
Aceptado

pomes básicamente un contenedor de submódulos, cada submódulo está representado por un subdirectorio en el mismo directorio que pom.xmlcon pomel empaquetado.

En algún lugar, anidados dentro de la estructura del proyecto, encontrará artefactos (módulos) con warpaquetes. Maven generalmente integra todo en /targetsubdirectorios de cada módulo. Entonces, después de mvn installbuscar en targetel subdirectorio de un módulo con warempaquetado.

Por supuesto:

$ find . -iname "*.war"

funciona igual de bien ;-).

Tomasz Nurkiewicz avatar Oct 07 '2011 19:10 Tomasz Nurkiewicz

El empaquetado de pom es simplemente una especificación que establece que el artefacto principal no es una guerra o un frasco, sino el propio pom.xml.

A menudo se utiliza junto con "módulos" que normalmente se encuentran en subdirectorios del proyecto en cuestión; sin embargo, también se puede usar en ciertos escenarios donde no se pretendía construir ningún binario primario, todos los demás artefactos importantes han sido declarados como artefactos secundarios.

Piense en un proyecto de "documentación", el artefacto principal podría ser un PDF, pero ya está creado, y el trabajo para declararlo como un artefacto secundario podría ser deseable en lugar de la configuración para indicarle a Maven cómo crear un PDF que no necesita compilado.

Edwin Buck avatar Jul 17 '2012 14:07 Edwin Buck

El empaquetado de pomse utiliza en proyectos que agregan otros proyectos y en proyectos cuyo único resultado útil es un artefacto adjunto de algún complemento. En su caso, supongo que su pom de nivel superior incluye <modules>...</modules>agregar otros directorios, y el resultado real es el resultado de uno de los otros (probablemente sub)directorios. Si se codifica con sensatez para este fin, tendrá un paquete de war.

bmargulies avatar Oct 07 '2011 19:10 bmargulies

Empaquetar un artefacto como POM significa que tiene un ciclo de vida muy simple

package -> install -> deploy

http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

Esto es útil si está implementando un archivo pom.xml o un proyecto que no encaja con los otros tipos de empaquetado.

Utilizamos envases de pompones para muchos de nuestros proyectos y vinculamos fases y objetivos adicionales según corresponda.

Por ejemplo, algunas de nuestras aplicaciones utilizan:

prepare-package -> test -> package -> install -> deploy

Cuando instale la aplicación, deberá agregarla a su repositorio .m2 local. Para publicar en otro lugar, deberá configurar la información de gestión de distribución correcta. Es posible que también necesite utilizar el complemento auxiliar Maven Builder, si Maven no adjunta automáticamente los artefactos.

James Morgan avatar Aug 28 '2014 09:08 James Morgan