Organiser correctement une web-app (développement et deploiement) - Java - Programmation
Marsh Posté le 13-02-2004 à 16:33:19
Hé ben quel succès!
Bon, ben j'me suis débrouillé tout seul.
J'ai fait mon build.xml
Je me suis inspiré de ça (ce que je demandais ici en gros):
http://membres.lycos.fr/afriksoft/ [...] ld_xml.php
et j'ai bien sur utilisé aussi le manuel ANT :
http://ant.apache.org/manual/
Je vas poster mon script ici. Il permet de faire principalement 2 choses :
- déployer sur mon moteur de servlet en local, avec compilation débug
- créer un .war pour la distribution
ça se veut relativement générique, à condition de respecter une certaine architecture dans le projet de dev et de modifier les 2 propriétés du départ (nom de l'appli et chemin de tomcat).
Pour les remarques, vous gênez pas.
Voila ce que ça donne :
|
Marsh Posté le 13-02-2004 à 16:38:31
1. j'avais pas vu ton sujet
2. Je fais tout ce que tu decris avec Ant et un peu plus en passant et je suis pas le seul ici
tu devrais voir toutes les task de Ant, tu peux faire beaucoup plus que ca
Marsh Posté le 13-02-2004 à 16:42:45
uriel a écrit : 1. j'avais pas vu ton sujet |
Je m'en doutais que j'étais pas le seul à avoir besoin de ça. Tant pis, j'suis content quand même de ce que j'ai fait, personne me cassera mon bonheur
Mon script c'est un début, j'aurais surement 2 ou 3 choses à y ajouter.
Tu proposes quoi de plus toi au juste ?
Et ANT, j'ai vu qu'il fait beaucoup plus, mais je suis pas sur que j'ai l'utilité de tout ça. J'veux pas non plus passer ma vie à écrire un script. 'faut aussi que je prenne un peu de temps pour développer !
Marsh Posté le 13-02-2004 à 16:46:12
C'est clair que ca depend de tes besoins, mais tu peux utiliser la generation de la javadoc, faire appel à des doclet specifique aussi (x doclet pour pas le citer), utiliser CVS, enfin toute la panoplie j2ee si tu en as le besoin.
Je pense qu'il vaut mieux perdre du temps sur le scritp ant, ca te fera gagner du temps par la suite
Marsh Posté le 13-02-2004 à 16:53:09
uriel a écrit : C'est clair que ca depend de tes besoins, mais tu peux utiliser la generation de la javadoc, faire appel à des doclet specifique aussi (x doclet pour pas le citer), utiliser CVS, enfin toute la panoplie j2ee si tu en as le besoin. |
Rien de tout ça ne me serait terriblement utile pour l'instant (on a pas de serveur CVS). Pour la doc, peut être que j'ajouterai ça.
J'aurais le droit de le voir ton build.xml (s'il est générique bien sur)
uriel a écrit : |
J'rigolais. J'pense plutôt la même chose. D'ailleuesr je viens de passer mon après midi à ça. Et puis c'est agréable quand on pense a tous ces trucs fastidieux qu'on évitera par la suite en faisant ça! Les livraisons, ça va devenir un vrai plaisir!
Marsh Posté le 13-02-2004 à 16:58:58
euh, pour mon build.xml, il est pas generique (je bossais sur JBoss mais plsu maintenant, on va passer sur une solution hibernate)
Mais pour la javadoc, ca donne quelque chose comme ca:
Code :
|
quant à x doclet, il pourrait te servir un jour, beaucoup de temps de gagner:
http://xdoclet.sourceforge.net/
et il y en a qui l'utilise avec Idea ici, il doit y avoir un plugin ou un truc comme ca (moi suis sur eclipse)
Marsh Posté le 13-02-2004 à 17:01:21
Merci. (j'regarderais ça plus en détails Lundi)
Marsh Posté le 13-02-2004 à 17:14:29
Et utiliser des "variables", histoire d'incrémenter automatiquement un numéro de version, histoire de l'inclure dans mes sources, sans réécrire de nouvelle "task", vous croyez que c'est possible ? si oui, comment ?
Marsh Posté le 13-02-2004 à 17:16:42
el_gringo a écrit : Et utiliser des "variables", histoire d'incrémenter automatiquement un numéro de version, histoire de l'inclure dans mes sources, sans réécrire de nouvelle "task", vous croyez que c'est possible ? si oui, comment ? |
oui tu peux le faire avec la date par exemple.... mais pour l'inclure dans tes sources, je vois pas, ni comment , ni l'interet
Marsh Posté le 13-02-2004 à 17:23:25
uriel a écrit : |
Ben, pour indiquer automatiquement la nouvelle version de ma web-app à chaque livraison, modifier le @version de la javadoc par exemple, et puis j'ai une constante dans mes sources qui indique le numéro de version (histoire de pouvoir vérifier la version via la web-app).
En fait la date, c'est nécessaire, mais pas suffisant, il faudrait que je puisse incrémenter un numéro.
Dans ma boite les numéros de version sont sur ce shéma :
n°majeur.n° mineur,n°release (incrémenté à chaque livraison).aammjj (année, mois, jour).
Tu vois comment générer ça automatiqueemnt avec ANT ?
Marsh Posté le 13-02-2004 à 17:25:21
ca doit etre faisable (tout est faisable avec ant) par contre pour la modif dans le code source je sais pas, mais l'incrementation du numero de l'archive doit etre faisable
Marsh Posté le 13-02-2004 à 17:35:33
uriel a écrit : ca doit etre faisable (tout est faisable avec ant) par contre pour la modif dans le code source je sais pas, mais l'incrementation du numero de l'archive doit etre faisable |
Si si, la modif dans le code source c'est le seul truc dont je suis sur que c'est faisable grace à la "task" Replace (permet de remplacer une chaine par une autre dans un fichier donné).
Reste à trouver comment calculer le nouveau numéro de version et l'affecter à une "property"...
Marsh Posté le 13-02-2004 à 17:37:11
el_gringo a écrit : |
si tu peux faire un replace, avec properties, tu recuperes le numero, l'incremente et le remplace
Marsh Posté le 13-02-2004 à 17:57:59
he ben
jveux pas te demonter, mais t'aurais utilisé maven t'aurais pas à te palucher ton script ant ...
Marsh Posté le 13-02-2004 à 18:01:57
ReplyMarsh Posté le 13-02-2004 à 18:03:13
uriel a écrit : |
y'a aussi un "plugin" pour eclipse hein... le seul truc à faire c'est betement de lui dire quels sont les @tags valides
chuis content de voir enfin qqun d'ici qui utilise xdoclet et hibernate ! !! !!
Marsh Posté le 13-02-2004 à 18:04:20
effectivement, on se demande justement quelle techno utiliser comme framework, vu que on va utiliser Hibernate, WSIF, Tomcat...
maven doit convenir
Marsh Posté le 13-02-2004 à 18:05:23
the real moins moins a écrit : y'a aussi un "plugin" pour eclipse hein... le seul truc à faire c'est betement de lui dire quels sont les @tags valides |
pour eclipse je sais, je l'ai, mais visiblemet gringo utilise Idea (dans le script ant)
Marsh Posté le 13-02-2004 à 18:08:29
uriel a écrit : effectivement, on se demande justement quelle techno utiliser comme framework, vu que on va utiliser Hibernate, WSIF, Tomcat... |
ben ça depend ce que t'entend par framework hein !!
maven ça te permet juste de builder ton projet, de gerer les dependences tres facilement, et de builder des tas de reports.
Marsh Posté le 13-02-2004 à 18:11:37
the real moins moins a écrit : ben ça depend ce que t'entend par framework hein !! |
sachant que je suis en plein dans la doc pour etudier justement l'interet de tel ou tel outils, pour l'instant c'est pas tres clair pour moi
j'aurais voulu eviter d'avoir trop de bordel vu que je serais pas seul sur le projet et donc gerer le tout par un outils commun, maven est un outils de gestion de projet, c'est ce que je recherche à voir si il est suffisnt ou si il est trop puissant pour ce dont j'ai besoin
Marsh Posté le 13-02-2004 à 18:17:37
ReplyMarsh Posté le 13-02-2004 à 18:18:14
ReplyMarsh Posté le 13-02-2004 à 18:23:04
nan
(c'est un machin relou pour l'xml ça nan?)
Marsh Posté le 13-02-2004 à 18:27:47
the real moins moins a écrit : nan |
oui, http://cocoon.apache.org/
c'est un truc qui te permet de gerer l'affichage de l'appli, mais aussi de communiquer avec les autres appli en XML si j'ai bien compris (entre autre) faut que je vois l'interet pour moi
Marsh Posté le 13-02-2004 à 18:28:34
ReplyMarsh Posté le 13-02-2004 à 18:31:36
ReplyMarsh Posté le 14-02-2004 à 01:04:38
mouais mais le truc c'est que nos differentes appli communique entre elles par XML... format de sortie assez standard
edit: je m'explique , on a des vieux prog qui sortent des fichiers texte en sortie, on a fait en sorte qu'il fasse du XML, d'autre l'accepte en entrée, et ainsi de suite, avec 2 ou 3 different soft dans different endroits -> services web, mais aussi presentation des resultats intermediaires, d'ou XSL et Cocoon
Marsh Posté le 16-02-2004 à 13:40:35
the real moins moins a écrit : he ben |
1) Maven je connaisais pas (et je connais toujours pas)
2) Au moins ça m'a permis de découvrir la fonctionnement de base de ANT
3) Mon script est tout simple et ne nécessite l'installation de rien d'autre que mon IDE (IntelliJ), ça me va très bien. Et puis je sais exactement ce que je fais comme ça.
(je jeterai quand même un oeil à Maven, par curiosité)
Marsh Posté le 16-02-2004 à 13:42:00
uriel a écrit : |
Ben, mon problème, c'est justement de l'incrémenter (et en prime, d'y ajouter la date au format aaaammjj (avec tstamp j'imagine). Bref, faire un calcul et modifier une property lue.
Marsh Posté le 16-02-2004 à 17:02:14
ReplyMarsh Posté le 17-02-2004 à 08:53:37
ReplyMarsh Posté le 17-02-2004 à 17:15:19
Bon, ben ça a pas l'air d'interresser grand monde, mais j'ai trouvé ça :
|
Marsh Posté le 17-02-2004 à 17:17:16
c'est pas que ca m'interesse pas mais je connais pas de reponse à ta question, je connaissais pas ce que tu viens de poster, donc tu peux incrementer un nombre mais ca ne modifie pas le code, jsute l'archive que ant va te generer, c'est ca ?
Marsh Posté le 17-02-2004 à 17:27:34
uriel a écrit : c'est pas que ca m'interesse pas mais je connais pas de reponse à ta question, je connaissais pas ce que tu viens de poster, donc tu peux incrementer un nombre mais ca ne modifie pas le code, jsute l'archive que ant va te generer, c'est ca ? |
Ouais. vu que je suis en train de mettre la chose en place, c'est moi qui fixe les règles : la version ne sera pas en dur dans le code. Si on veut l'afficher via l'appli, on ira la lire dans le fichier _version.txt.
Marsh Posté le 17-02-2004 à 17:28:58
Par contre j'ai à nouveau un problème : j'arrive pas à trouver comment on peut exécuter telle ou telle tâche en fonction d'un choix utilisateur (task "input" ). Avec la task "condition", je vois qu'on peut fixer une propriété en fonction d'une condition donnée, mais exécuter une tâche, je vois pas. Tu sais faire ça ?
Marsh Posté le 17-02-2004 à 17:29:24
ok, c'est toujours mieux que rien, mais tu as regardé Maven, qui apparement te permets ca?
Marsh Posté le 18-02-2004 à 08:43:54
uriel a écrit : ok, c'est toujours mieux que rien, mais tu as regardé Maven, qui apparement te permets ca? |
Non. ANT est intégré à mon IDE. Je veux pas faire installer autre chose à toute ma boite.
Marsh Posté le 13-02-2004 à 12:04:57
Je développe une "grosse" web-app, depuis maintenant 1 an. Je vais encore être amené à la retoucher très souvent. J'ai décidé de réorganiser le "projet" (au sens informatique).
Voici la situation actuelle :
- mon IDE "pointe" directement sur le répertoire web-app de mon appli dans le moteur de servlet.
- les sources de mes classes sont dans les mêmes répertoires que mes classes compilées (WEB-INF/classes).
Bref, actuellement, l'environnement de développement est complètement mélangé à l'environnement d'execution.
Je compte utiliser ANT pour pouvoir séparer entièrement les 2 environnements.
Voila mes contraintes :
- l'ensemble des sources du projet (JSP, servlets, web.xml) doit se trouver au même endroit (plus pratique pour les sauvegardes et pour se passer le projet d'une personne à l'autre).
- la compilation/déploiement/tests en conditions réelles (sur moteur de servlets) doit se faire simplement.
J'imagine que mes contraintes n'ont rien d'exceptionnel, alors je demande a tous ceux qui développent des web-app proprement : comment vous avez organisé tout ça ? (nottament au niveau du placement de JSP dans le répertoire de dev, des classes, le script ANT s'il y a, ...
Merci a ceux qui vont m'aider (et qui seront très nombreux, j'en suis sur )
Message édité par El_gringo le 27-01-2006 à 01:18:18
---------------
Les Vers Solitaires, on aime ... ou pas !