zte precio descarga caracteristicas maven-2

maven 2 - precio - Maven-haciendo proyectos infantiles que pueden ser independientes de sus padres



zte maven 2 firmware (5)

El pom padre y su versión tienen que ser declarados en los hijos.

Si sus proyectos tienen un padre declarado, debe estar disponible en la compilación, de modo que uno de los módulos debe ser el pom principal o en un repositorio. Parece que dices que quieres que alguien pague un proyecto que depende de un padre, pero que no tenga acceso a él y que aún pueda construir el proyecto, lo cual es como intentar construir un proyecto sin sus dependencias.

Sus opciones para que el pom padre esté disponible son:

  • Configure un repositorio público de Maven, implemente el pom principal y ponga la información del repositorio en los poms secundarios.
  • Puede decirle a maven que busque el pom principal en una ruta relativa antes de que compruebe los repositorios (esto es para ayudarlo cuando tenga cambios locales en el pom principal, que aún no están implementados). Por lo tanto, es posible que pueda hacer un svn: external o su equivalente en su proyecto secundario a su pom principal.

Soy un poco nuevo para Maven, y estoy tratando de configurar un proyecto de Maven que genere varios proyectos secundarios, pero aún así permite que alguien solo tome uno de los proyectos secundarios y lo construya de forma independiente sin el padre.

parentfolder ->pom.xml ->project1 ->pom.xml ->src ->project2 ->pom.xml ->src ->project3 ->pom.xml ->src

Básicamente, quiero que alguien pueda revisar las carpetas parentales y compilar mvn para compilar todos los proyectos, y también para que alguien pueda desproteger solo project1 y hacer compilación mvn para compilarlo.

He intentado declarar los subproyectos como módulos en el pom.xml de nivel superior,

<modules> <module>project1</module> <module>project2</module> <module>project3</module> </modules>

Pero eso parece requerir que la información pom.xml principal se declare en los secundarios. Esto hace que los proyectos secundarios dependan de que el pom.xml principal esté presente, que es lo que quería evitar.



Los subproyectos solo dependen del padre si usan la etiqueta <parent> (herencia de Maven). No es necesario que use la etiqueta <parent> en los submódulos. Sin embargo, si desea que sus módulos hereden elementos comunes del pom principal, entonces tiene que usar la herencia de Maven.

Estrictamente hablando, si está utilizando la herencia y desea compilar solo un subproyecto, entonces el pom.xml principal no tiene que estar presente en el directorio principal; Mientras Maven pueda encontrar el pom principal en un repositorio local o remoto, se construirá. En la práctica, si hay cambios en el pom de sus padres, tendrá que encontrar la manera de que los miembros de su equipo se mantengan al día con los pom de los padres.


Me parece que el problema es que Maven está sobrecargando la etiqueta principal. Los doctores de Maven siguen diciéndome que la herencia y la agregación son dos cosas diferentes, pero ambos usan la misma etiqueta para lograr su función. Esto no se compara con el escenario que pide el cartel original. Uno puede querer

  1. heredar ciertas configuraciones de un padre común, sin embargo,
  2. Tiene dos versiones de diferentes aplicaciones que comparten un componente común.

Por lo tanto, tenemos dos entendimientos diferentes de la relación con los padres aquí. Primero, el "padre" que contribuye con la configuración de cada módulo y el segundo, el "padre" cuya compilación construye el hijo. Como hay dos de estos últimos, esto se descompone. Las dos ideas de parentesco se interponen en el camino del otro.


Tienes que cuidar las diferencias entre la relación padre-hijo y el concepto de agregación en Maven2. No son el mismo principio, incluso si realmente se usan a menudo al mismo tiempo.

PADRE

El primer concepto es que un proyecto declara en su pom.xml un padre:

<project> <modelVersion>4.0.0</modelVersion> <parent> <groupId>foo</groupId> <artifactId>bar</artifactId> <version>42</version> </parent> ...

En este caso, para construir este componente, el proyecto principal debe encontrarse en el repositorio local. Este es tu caso aquí.

El interés del concepto principal en Maven 2 es heredar propiedades, dependencias, configuración. Este es el lugar donde colocará toda la información común de los proyectos para niños.

Este es exactamente el mismo concepto de las extends en el lenguaje Java.

AGREGACIÓN

En este caso, tiene un proyecto que agrega varios submódulos especificando sus nombres en los nodos del module :

<modules> <module>commons</module> <module>client</module> <module>server</module> ... </modules>

Esto significa que cada comando que ejecutará en este proyecto raíz se ejecutará en cada módulo (el orden está definido por el Reactor de Maven 2). Por ejemplo, si ejecuta mvn clean install en el proyecto raíz, Maven 2 ejecutará este comando en el proyecto raíz, luego en el proyecto commons , luego en el client y finalmente en el server .

En este concepto, puedes compilar un proyecto sin compilar ningún otro proyecto (excepto si hay interdependencias, por supuesto).

Aquí hay un esquema que muestra los dos conceptos diferentes:

texto alternativo http://books.sonatype.com/mvnref-book/reference/figs/web/pom_real_multi.png

Usted tiene explicaciones más detalladas sobre estos dos conceptos en Maven: The Definitive Guide, here .