¿Qué es el empaquetado "pom" en maven?
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.xml
archivos de nivel superior de este proyecto tienen el tipo de paquete configurado como pom
.
¿ Qué se supone que debo hacer después mvn install
para implementar esta aplicación? Esperaba poder encontrar un war
archivo en alguna parte o algo así, pero supongo que estoy buscando en el lugar equivocado o me estoy perdiendo un paso.
pom
es básicamente un contenedor de submódulos, cada submódulo está representado por un subdirectorio en el mismo directorio que pom.xml
con pom
el empaquetado.
En algún lugar, anidados dentro de la estructura del proyecto, encontrará artefactos (módulos) con war
paquetes. Maven generalmente integra todo en /target
subdirectorios de cada módulo. Entonces, después de mvn install
buscar en target
el subdirectorio de un módulo con war
empaquetado.
Por supuesto:
$ find . -iname "*.war"
funciona igual de bien ;-).
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.
El empaquetado de pom
se 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
.
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.