Para los fines educativos que han creado un diseño de proyecto como tal (plana con el fin de eclipsar la suite mejor):Maven: ¿proyecto 'todo' o 'padre' para la agregación?
-product
|
|-parent
|-core
|-opt
|-all
Padres contiene un proyecto conjunto con el núcleo, optar y todo. Core implementa la parte obligatoria de la aplicación. Opt es una parte opcional. Se supone que todo combina núcleo con opt y tiene estos dos módulos enumerados como dependencias.
Ahora estoy tratando de hacer los siguientes artefactos:
- producto core.jar
- producto de núcleo src.jar
- producto de núcleo-with-dependencies.jar
- producto-opt.jar
- producto-opt-src.jar
- producto-opt-con-dependencies.jar
- -all.jar producto
- producto todo-src.jar
- producto todo-en-dependencies.jar
mayoría de ellos son bastante sencillo de producir. Aunque tengo algunos problemas con los artefactos agregados. He logrado hacer el producto-all-src.jar con un descriptor de ensamblaje personalizado en el módulo 'todo', que descarga las fuentes para todos los productos no transitivos, y esto funciona bien. Esta técnica también me permite crear el producto-todo-con-dependencias.jar.
Sin embargo, recientemente descubrí que puede usar el objetivo de fuente: agregado en el complemento de origen para agregar fuentes de todo el proyecto agregado. Esto también es cierto para el complemento javadoc, que también se agrega a través del uso del proyecto principal.
Así que estoy dividido entre mi enfoque de 'todos' los módulos y abandonando el módulo 'todos' y simplemente uso el módulo 'principal' para toda la agregación. Se siente sucio tener algunos artefactos agregados producidos en 'padre', y otros producidos en 'todo'. ¿Hay alguna manera de crear un contenedor de 'producto-todo' en el proyecto padre, o de agregar javadoc en el proyecto 'todo'? ¿O debería mantener ambos?
Gracias
Gracias por la sugerencia. Acabo de echarle un vistazo y parece que la fuente maven sigue el diseño general que sugerí, sin embargo, sin aplanar el árbol como usted señaló. El ensamblaje final es IMO no muy limpio, solo hace un grege regex para todos los archivos fuente en el directorio '../', no es fácil si se quieren fuentes de dependencias de terceros, etc. Tampoco está en línea con cómo el javadoc trabajo del agregador (a través del proyecto principal). Parece que falta la funcionalidad que me gustaría, intentaré escribir un enfoque alternativo aquí cuando haya experimentado algunos. Gracias por el puntero. –
BTW, el ensamblaje src se puede encontrar en http://svn.apache.org/repos/asf/maven/maven-3/trunk/apache-maven/src/main/assembly/src.xml –