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

Maven Java Discussion :

Récupérer les noms des dépendances dans un fichier filtré


Sujet :

Maven Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 85
    Points : 43
    Points
    43
    Par défaut Récupérer les noms des dépendances dans un fichier filtré
    Bonjour,

    Je suis actuellement sur un projet Java sur lequel je souhaiterai déployer un jar ainsi que son fichier batch qui va permettre de le déclarer en tant que service Windows.

    Cependant, j'aurai besoin de copier au moment de la génération du jar la liste des dépendances dont le projet a besoin avec un pattern du style

    lib\truc.jar lib\machin.jar lib\bidule.jar

    J'ai pu déjà trouver comment je déclare une variable dans ce batch en fonction du nom final du fichier livré ainsi que sa version mais je n'arrive pas à avoir accès aux dépendances !

    Quelqu'un aurait-il une idée afin de copier les dépendances de Maven de ce batch au moment du filtrage ?

    Merci d'avance !

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    M'est avis que tu devrais jeter un oeil sur le plugin assembly qui te permettra de faire ce que tu souhaites, et en particulier cette fonctionnalité...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 85
    Points : 43
    Points
    43
    Par défaut
    Merci pour la réponse.

    J'ai déjà utilisé ce plugin pour la constitution de mes distribuables.
    Mais la fonctionnalité citée à moins que je passe à coté de la plaque permet de copier les jars sur un endroit particulier et non de les citer et d'en écrire la liste dans un fichier.

    J'utilise déjà ceci sur mon fichier batch au moment du filtrage de mes ressources pour nommer un fichier avec un patern particulier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET exe=%BIN%\${project.artifactId}-${project.version}.exe
    Ceci fonctionne très bien, mais je n'arrive pas à trouver la propriété qui cite toutes les dépendences que j'inclus ensuite avec le plugin assembly

    Une petite idée ?

    Merci d'avance,

  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Ah ok, je comprends mieux.

    De notre côté, pour faire les batches, on utilisait effectivement l'assembly, afin de mettre toutes les dépendances nécessaires dans un sous-répertoire lib/.
    Ensuite, on avait un petit script batch qui redéfinissait le classpath puis lançait l'application de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    @echo off
     
    setlocal
     
    setlocal EnableDelayedExpansion
    for %%f in (lib\*.jar) do set classpath_appli=!classpath_appli!;%%f
    endlocal & set CP_appli=%classpath_appli%
    set CP_appli=.;%CP_aplli%
     
    java -cp %CP_appli% mon.appli.AppliMain
    Le seul souci avec cette méthode, c'est que sur certaines versions de Windows (genre Windows 2000), si le classpath dépassait 1024 (?) caractères - ce qui est vite atteint, vu que nous avions une cinquantaine de dépendances - le classpath était tronqué, donc cela ne marchait pas...

    La version définie au final, c'est d'utiliser le Java Service Wrapper de Tanuki, assez simple à mettre en place. On règle les paramètres de l'application à mettre en service dans un fichier de configuration wrapper.conf. Pour le classpath, on fait simplement ça ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    wrapper.java.classpath.1=.
    wrapper.java.classpath.2=lib/*.jar
    En espérant t'avoir aidé...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 85
    Points : 43
    Points
    43
    Par défaut
    Merci pour l'éclaircissement

    Ok, donc ce que je vois, c'est que dans les deux cas, vous utilisez la liste des fichiers copiés grace au plugin Assembly de Maven plutôt que de citer directement les dépendances à partir du POM.

    Les limitations que tu cites n'en sont pas vu que nous sommes tous sur du Windows XP coté développement, et sur du Server 2003 pour l'hébergement des applications

    J'ai déjà utilisé le JavaService Wrapper pour transformer des .jar en Win32Service cependant il me semble que cet outil bien qu'Open Source est soumis à une licence commerciale.

    En revanche j'ai trouvé JavaService d'ObjectWeb peut-être un peu plus compliqué à configurer qui lui est sous licence LGPL

    En tout cas merci pour les informations, je vais tâcher de me débrouiller avec tous ces éléments !

  6. #6
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Citation Envoyé par globule71 Voir le message
    Ok, donc ce que je vois, c'est que dans les deux cas, vous utilisez la liste des fichiers copiés grace au plugin Assembly de Maven plutôt que de citer directement les dépendances à partir du POM.
    L'intérêt de l'assembly est de fournir un ZIP contenant toutes les dépendances, les éventuels fichiers nécessaires à l'appli, et tous les fichiers pour transformer ça en service Windows. Du coup, c'est plus simple à distribuer...

    Citation Envoyé par globule71 Voir le message
    J'ai déjà utilisé le JavaService Wrapper pour transformer des .jar en Win32Service cependant il me semble que cet outil bien qu'Open Source est soumis à une licence commerciale.
    La version Community, largement suffisante pour les besoins que l'on a ici, suffit, et est distribuée en LGPL...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 85
    Points : 43
    Points
    43
    Par défaut
    Ok merci pour tout !

    Je tag ce post en résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer les valeurs des attributs dans un fichier XML ?
    Par chinoismasque dans le forum Windows Phone
    Réponses: 3
    Dernier message: 01/08/2011, 10h15
  2. Réponses: 2
    Dernier message: 29/03/2010, 11h12
  3. Récupérer les noms des champs dans une requête
    Par Nerziel dans le forum Général Python
    Réponses: 1
    Dernier message: 14/09/2009, 11h29
  4. Réponses: 2
    Dernier message: 01/04/2009, 13h54
  5. Réponses: 3
    Dernier message: 04/07/2008, 11h07

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