Estructura para múltiples proyectos JSF con código compartido

Tengo dos proyectos JSF que comparten mucho código: clases de Java, archivos xhtml, bibliotecas de tags, archivos css y javascript, etc. Mi entorno / plataforma de desarrollo se compone principalmente de Eclipse, Ant, Perforce y Tomcat.

¿Alguien ha encontrado una forma de crear y organizar el código compartido para que el código común pueda permanecer dentro de un conjunto de carpetas?

Eclipse hace que sea más fácil agregar carpetas externas para orígenes Java, pero se queda corto en los otros tipos de archivos. Agradecería cualquier idea.

    Crea un nuevo “Proyecto Java” en Eclipse. Añádalo como otro proyecto a la propiedad Ensamblaje de despliegue del proyecto web dynamic principal. De esta forma, terminará automáticamente como un JAR en /WEB-INF/lib de la comstackción del proyecto web. Desde las versiones más nuevas de Eclipse, también puede crear el proyecto como “Proyecto de Fragmentos Web”. De esta forma, el paso de Implementación de implementación se realizará automáticamente.

    Coloque todos los archivos de recursos compartidos JSF2 / Facelets en la carpeta /META-INF/resources del proyecto Java. Solo WebContent/resources como contenido WebContent/resources del proyecto web principal. Los archivos Tag pueden guardarse en su propia carpeta /META-INF/tags .

    P.ej

     CommonWebProject |-- META-INF | |-- resources | | `-- common | | |-- css | | | `-- some.css | | |-- js | | | `-- some.js | | |-- images | | | `-- some.png | | |-- components | | | `-- somecomposite.xhtml | | `-- sometemplate.xhtml | |-- tags | | `-- sometag.xhtml | |-- faces-config.xml | |-- some.taglib.xml | |-- web-fragment.xml | `-- MANIFEST.MF : 

    con

           ... 

    Si también desea activar el escáner de anotaciones JSF2 para poder poner @FacesValidator , @FacesConverter , @FacesConverter y consortes también en ese proyecto, cree un archivo /META-INF/faces-config.xml compatible con /META-INF/faces-config.xml también ( incluso puede mantenerse vacío).

     < ?xml version="1.0" encoding="UTF-8"?>   

    Eso es todo.

    Ver también:

    • División de código compartido y web.xml del proyecto WAR al proyecto JAR común
    • Embalaje de plantilla de fakets JSF
    • Obtención de plantillas / archivos de Facelets desde un sistema de archivos o base de datos externo