[SITE] Conceptualiser un site multi modules.
Bonjour à tous,
Cela fait quelque temps maintenant que j'utilise Maven, mais je ne me suis que récemment intéressé à la génération de site (aspect documentation) qu'il proposait. J'ai donc commencé simplement la génération de site avec des petits projets. Là pas de souci, la documentation est clair, les plugins simples à utiliser et pour les zones d'ombre, la FAQ du coin sort l'éclairage 1000W.
Je souhaite maintenant générer un site pour un projet que je découpe en plusieurs modules. Là techniquement ça n'est pas beaucoup plus compliqué, mais c'est sur la conceptualisation de la chose que je souffre un peu :
Prenons un exemple. Un projet que je compose en 2 parties :
- Une partie "core" qui contiendra la couche service et modèle (jar)
- Une partie "web" qui contiendra la couche vue (war)
J'ai donc à faire à 1 Projet constitué de 2 Modules.
Il m'intéresse d'avoir pour chaque module une listes de rapports (les plus usuels) et pour l'ensemble du projet une section de documentation pour aider les développeurs.
Pour les rapports, cette notion intervenant au niveau de chaque module, je ne pense pas me tromper en ajoutant les informations nécessaires à leur génération dans les POM de "core" et "web".
Maintenant pour le site du projet en lui même, j'ai plus de doute.
Le site est il un module en lui même ? J'ai bien l'impression que oui.
Je crée donc un nouveau module :
- Une partie "site" qui contiendra la documentation du projet.
Comme il s'agit du site du projet et donc la partie qui englobe les modules, je serait tenté de faire de ce module le parent des 2 autres. Mais là je commence à faire de sérieux noeuds avec mon cerveau. En fait ça dépend de l'humeur, je n'arrive pas à me décider.
Bref, en admettant le point précédent, je me retrouve avec la structure suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
monprojet
|
|
----- site
| |
| ----- pom.xml (POM)
|
----- core
| |
| ----- pom.xml (JAR)
|
----- web
|
----- pom.xml (JAR) |
Je souhaite maintenant savoir si les personnes gérants des sites multi-modules utilise cette approche (structure FLAT) ou quelque chose de sensiblement différent. Cette structure me convient particulièrement pour l'intégration de ces 3 modules dans Eclipse ainsi que pour la gestion de l'archivage, par contre elle me paraît moins adaptée pour des solutions comme Continuum.
Je n'ai pas trouvé d'élément de réponse dans la documentation de maven ni dans la FAQ, donc si vous pouvez me faire part de votre retour d'expérience vous aurez fait au moins un heureux ;).
Bonne fin de journée
Steph
[SITE] Conceptualiser un site multi modules.
ça ne fontionne pas vraiment de cette manière :
tu as plutôt cela :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
monprojet
|
|
----- pom.xml (POM)
|
----- core
| |
| ----- pom.xml (JAR)
|
----- web
|
----- pom.xml (JAR) |
ton 1er POM est le POm de ton projet dans lequel tu déclares tes 2 modules core et web
Dedans, tu créés une section <reporting> avec tous les rapports et notamment javadoc comme suit :
Code:
1 2 3 4 5 6 7 8
|
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<aggregate>true</aggregate>
</configuration>
</plugin> |
ce qui te permet d'avoir toute ta javadoc au plus haut niveau
ensuite tu fais un mvn:site
et le site sera généré pour le projet "monprojet" et ensuite pour chaque sous-projet dans le répertoire "target/site" de chaque projet ou sous-modules , avec des liens de "monprojet" vers tes sous-projets dans la section modules.
mais avec mvn:site les liens ne focntionneront pas.
[CODE]
tu as plutôt cela :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
monprojet
|
|
|---- pom.xml (POM)
|---- target
| |
| |-- site
| |--index.html
|
----- core
| |
| |---- pom.xml (JAR)
| |---- target
| |
| |-- site
| |--index.html
|
----- web
| |
| |---- pom.xml (JAR)
| |---- target
| |
| |-- site
| |--index.html |
Pour cela, tu fais : mvn site:stage -DstagingDirectory=c:\temp
dans ce cas, tu auras un vrai site :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
monprojet
|
|
|---- index.html
|---- project-info.html
|---- ....
|
----- core
| |
| |---- index.html
| |---- project-info.html
|
----- web
|
|---- index.html
|---- project-info.html |
et voilà , j'espere avoir été clair
[SITE] Conceptualiser un site multi modules
je ne comprends pas trés bien tes 2 questions.
1) tu n'arrives pas à avoir la javadoc de tes classes générées par Hibernate ?
2) as-tu lu cette section :
http://maven.apache.org/plugins/mave...escriptor.html
en fait ça dépend de ce que tu veux faire car en fonction des besoins tu vas devoir avoir un src/site/site.xml dans chaque projet, y compris le super-projet.
Qu'est-ce que tu entends par perturber mon environnement eclipse ?
[SITE] Conceptualiser un site multi modules.
Si tu veux faire ça sans modifier ta structure existante , tu peux faire cela :
tu créés un projet site avec un POM ou tu déclares toutes tes dépendances et notamment Hibernate.
tu déclares une section reporting avec tous tes rapports et le javadoc comme je l'ai mis plus tôt.
ensuite tu déclares tes modules comme suit:
Code:
1 2 3 4 5
|
<modules>
<module>../core</module>
<module>../web</module>
<modules> |
ensuite dans chacun des POM (core et web), tu définis comme parent , le POM de ton projet site
Code:
1 2 3 4 5 6
|
<parent>
<artifactId>site</artifactId>
<groupId>xxxx.xxxx.xxxx</groupId>
<version>1.0</version>
</parent> |
tu fais un mvn install pour installer ton POM "site" dans ton repo local
et ensuite tu pex faire un mvn:site directement à la racine du projet site et ça devrait aller sans modifier l'existant