¿Cómo usar POM como una dependencia en Maven?

¿Hay alguna manera de agregar una dependencia de tipo pom a mi POM y obtener todos sus módulos?

JavaMail es un buen ejemplo. Maven Central Repo tiene un padre POM llamado: com.sun.mail: all: 1.5.0 con módulos: mail, mailapi, mailapijar, smtp, imap, gimap, pop3 y dsn.

Sin embargo, el artefacto “todos” solo tiene un único archivo: pom.xml ¿Hay alguna manera de agregar este artefacto “todo” como una dependencia a mi POM y obtener todos sus módulos? Estoy 90% seguro de que esta no es la forma correcta de usar dependencias en Maven, pero quiero escucharla de un experto en The Stack.

Ideas:

  • ...pom
  • ...pomimport

Relacionado: Netbeans: dependencias maven del tipo pom

Tienes que ir con

   com.my commons-deps pom   

Esto agregará transitivamente todas las dependencias declaradas en com.my:commons-deps a su POM actual.

Utilizando

    ... ... pom import    

funciona como una simple ‘inclusión’ de versiones de artefactos en su administración de dependencias. Por lo tanto, no agregará ninguna dependencia en su proyecto.

Creo que puedes crear tu propio POM que agregue las dependencias que deseas, y luego en tu proyecto original agregar una dependencia en ese pom agregado. Todavía tendrá que agregar dependencias en cada módulo individual en su POM de dependencia, pero se abstraerá de los POM del proyecto real y permitirá que esas dependencias se administren en un solo lugar, lo que podría ser útil si termina teniendo múltiples proyectos que dependen en ese conjunto de dependencias.

En tu ejemplo, podrías crear un nuevo pom como este:

   4.0.0 com.mycompany mail-deps 1.0.0 pom   com.sun.mail mail 1.5.0   com.sun.mail mailapi 1.5.0   com.sun.mail mailapijar 1.5.0   com.sun.mail imap 1.5.0   com.sun.mail gimap 1.5.0   com.sun.mail pop3 1.5.0   com.sun.mail dsn 1.5.0    

Luego, en su proyecto original solo agregue:

  ...  src/main/java/com/mycompany  ...   com.mycompany mail-deps 1.0.0 pom    

La respuesta corta: no puedes hacer esto en Maven.

Las otras respuestas solo hacen que el “todo” POM sea una dependencia. No resuelve el problema Otra respuesta intenta importar las dependencias del “todo” POM. No necesito las dependencias; Necesito los módulos (secundarios) del POM “todos”. De nuevo, no resuelve el problema.

Nota al margen: estaba usando la biblioteca JavaMail incorrectamente. Solo necesitaba agregar una dependencia: com.sun.mail: javax.mail: 1.5.0

Si el pom está tratando de importar, contiene dependencias definidas en una sección y desea importarlas todas, puede probar el siguiente código.

( Descargo de responsabilidad : no he hecho esto por un tiempo): en su sección , agregue la dependencia pom así:

    kung.fu ninja 1.2.3 import pom     

También puede ser el caso de que defina la dependencia directamente en la sección que no necesita el bit , pero, por lo que recuerdo, debe tener el scope import como se muestra arriba.

Como alguien ya escribió arriba: No puedes hacerlo. Pero esto es lo que hice y funcionó. Supongamos que tiene algún archivo pom (JavaMail en su ejemplo) con lo siguiente:

 pom  

Y quieres copiar todos los flasks mencionados en este pom a algún lugar. Esto es lo que hice y es una solución de trabajo rápido
Abra el pom original y simplemente copie y pegue todas las dependencias desde el archivo pom original hasta su nuevo pom como está. Por supuesto, use el complemento de dependencia maven para copiar todo.