IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Information version dans un JAR


Sujet :

Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 29
    Points : 18
    Points
    18
    Par défaut Information version dans un JAR
    Hello,

    J'utilise Ant pour générer un fichier Jar d'une application Java. Pour le moment j'identifie les versions en changeant à chaque fois (dans le build.xml) le nom du jar généré. Ceci n'est pas pratique et ne permet pas de mettre des informations sur les versions.

    Je crée aussi des modules pour un programme Java (Alfresco). J'aime bien l'idée : Chaque module (une sorte de Jar) contient un fichier texte où l'on indique le numéro de version. J'ajoute dedans mes informations sur chaque modifs (releases notes).

    Que me suggérez-vous pour garder une trace de mes modifications ? (j'aimerais qu'elles soient disponibles dans le jar).

    Note : A l'heure actuelle, je n'utilise aucun produit style SVN.

    Merci

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Tu peux utiliser le manifest pour stocker cela. Surtout qu'il y a déjà des clefs standard pour cela (Specification-Title, Specification-Version, Implementation-Title, Implementation-Version, ...).

    En plus c'est gérable via Ant : http://ant.apache.org/manual/Tasks/manifest.html

    a++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Merci bien adiGuba.

    J'ai fait ceci :

    Dans le build.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <manifest>
    				<attribute name="Main-Class" value="ch.custom.Run" />
    				<attribute name="Built-By" value="${user.name}" />
    				<section name="common">
    					<attribute name="Specification-Title" value="Example" />
    					<attribute name="Specification-Vendor" value="Example Organization" />
    					<attribute name="Implementation-Version" value="${TODAY}"/> 
    				</section>
    				<section name="0.0.12">
    					<attribute name="Date" value="01.10.2010" />
    					<attribute name="Modif1" value="Blalbal lasdf kjsdfkl  klsdklf klasdf laskdfj klaslk  jsdlfj . sldfj " />
    					<attribute name="Modif2" value="Blalbal lasdf kjsdfkl  klsdklf klassdflkajsdfljaskld jasldkfj lgggggg kl asdklfj lsdggggjsdlfksdlfj klasggggjlsfk jdf laskdfj klaslk  jsdlfj . sldfj " />
    				</section>
    				<section name="0.0.11">
    					<attribute name="Date" value="10.09.2010" />
    					<attribute name="Modif1" value="Blalbal lasdf kjsdfkl  klsdklf klasdf laskdfj klaslk  jsdlfj . sldfj " />
    					<attribute name="Modif2" value="Blalbal lasdf kjsdfkl  klsdklf klasdf laskdfj klaslk  jsdlfj . sldfj " />
    					<attribute name="Modif3" value="Blalbal lasdf kjsdfkl  klsdklf klasdf laskdfj klaslk  jsdlfj . sldfj " />
    				</section>
    			</manifest>
    Manifest.mf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    27
    28
     
    Manifest-Version: 1.0
    Ant-Version: Apache Ant 1.7.1
    Created-By: 1.6.0_03-b05 (Sun Microsystems Inc.)
    Main-Class: ch.custom.Run
    Built-By: dranakan
     
    Name: common
    Specification-Title: Example
    Specification-Vendor: Example Organization
    Implementation-Version: 2010-10-05 14:38:44
     
    Name: 0.0.12
    Date: 01.10.2010
    Modif1: Blalbal lasdf kjsdfkl  klsdklf klasdf laskdfj klaslk  jsdlfj .
      sldfj
    Modif2: Blalbal lasdf kjsdfkl  klsdklf klassdflkajsdfljaskld jasldkfj 
     lgggggg kl asdklfj lsdggggjsdlfksdlfj klasggggjlsfk jdf laskdfj klasl
     k  jsdlfj . sldfj
     
    Name: 0.0.11
    Date: 10.09.2010
    Modif1: Blalbal lasdf kjsdfkl  klsdklf klasdf laskdfj klaslk  jsdlfj .
      sldfj
    Modif2: Blalbal lasdf kjsdfkl  klsdklf klasdf laskdfj klaslk  jsdlfj .
      sldfj
    Modif3: Blalbal lasdf kjsdfkl  klsdklf klasdf laskdfj klaslk  jsdlfj .
      sldfj
    C'est exactement ce que je voulais. A chaque nouvelle version j'ajoute une section en changement la version. Je changerai aussi les noms modifX par un titre parlant de la modifs.

    • Si j'utilise un jour un SVN, serait-il judicieux de me servir du numéro de version que celui-la donne aux projets ou de se lier d'une quelconque façon?
    • J'ai mis des noms de sections et attributs personnalisés. Cela ne risque-t'il pas de créer des problèmes avec des outils qui utilisent le Manifest ?


    Merci

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par dranakan Voir le message
    • Si j'utilise un jour un SVN, serait-il judicieux de me servir du numéro de version que celui-la donne aux projets ou de se lier d'une quelconque façon?
    Pourquoi pas... A toi de voir !

    Citation Envoyé par dranakan Voir le message
    • J'ai mis des noms de sections et attributs personnalisés. Cela ne risque-t'il pas de créer des problèmes avec des outils qui utilisent le Manifest ?
    Dans la doc il est indiqué ceci :
    Attributes which are not understood are ignored. Such attributes may include implementation specific information used by applications.
    http://download.oracle.com/javase/6/...JAR%20Manifest
    Donc tu peux très bien utiliser des attributs persos.
    Toutefois il serait judicieux d'utiliser un préfixe afin d'éviter tout conflit (par exemple MyApp-Date à la place de Date)

    a++

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Merci bien :-)

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/06/2013, 22h29
  2. Saisir les informations de version dans le code
    Par Didier LOZAC'H dans le forum Langage
    Réponses: 5
    Dernier message: 27/07/2012, 16h45
  3. Réponses: 3
    Dernier message: 18/10/2010, 10h03
  4. Réponses: 3
    Dernier message: 24/11/2006, 11h12
  5. [jar] BufferedImage issue d'un .jpeg dans un jar
    Par tit_henry dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 13/05/2004, 10h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo