J'ai deux projets JSF qui partagent beaucoup de code - Java, fichiers xhtml, bibliothèques de balises, fichiers css et javascript, etc. Mon environnement/plateforme de développement se compose principalement d'Eclipse, Ant, Perforce et Matou.
Quelqu'un a-t-il trouvé un moyen de créer et d'organiser le code partagé de sorte que le code commun puisse rester dans un ensemble de dossiers?
Eclipse facilite l'ajout de dossiers externes pour Java sources, mais n'atteint pas les autres types de fichiers. J'apprécierais toutes les idées.
Créez un nouveau "Projet Java" dans Eclipse. Ajoutez-le comme un autre projet à la propriété Deployment Assembly du projet Web dynamique principal. De cette façon, il se terminera automatiquement en tant que JAR dans /WEB-INF/lib
de la construction du projet Web. Depuis les nouvelles versions d'Eclipse, vous pouvez également créer le projet en tant que "Projet de fragment Web". De cette façon, l'étape Deployment Assembly sera effectuée automatiquement.
Placez tous ces fichiers de ressources JSF2/Facelets partagés dans /META-INF/resources
dossier du projet Java. Traitez-le simplement comme WebContent/resources
du projet Web principal. Les Tagfiles peuvent simplement être conservés dans leur propre /META-INF/tags
dossier.
Par exemple.
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
:
avec
<h:outputStylesheet library="common" name="css/some.css" />
<h:outputScript library="common" name="js/some.js" />
<h:graphicImage library="common" name="images/some.png" />
<common:somecomposite />
<common:sometag />
<ui:include src="/common/sometemplate.xhtml" />
...
Si vous souhaitez également déclencher le scanner d'annotations JSF2 afin de pouvoir mettre @ManagedBean
, @FacesValidator
, @FacesConverter
et consorts dans ce projet également, créez un /META-INF/faces-config.xml
également (il peut même rester vide).
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://Java.Sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee http://Java.Sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
</faces-config>
C'est tout.