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 :

Modification classpath via .bat


Sujet :

Maven Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Modification classpath via .bat
    Bonjour,

    Je travail actuellement sur eclipse et maven.
    mes projets contiennent des jar. Mon objectif est de stocké ces jars dans un repository distant.

    une fois le projet chargé sous eclipse (il ne contient donc aucun jar), mon objectif est de télécharger les jar du repository distant vers un repository local.

    La ou je pêche est de savoir comment faire pour modifier le classpath des projets afin qu'ils comprennent que les jars se trouvent dans un repository local et non à la racine du projet.

    Je sais pas si j'ai été très clair. N'hésitez pas me demander des précisions si besoin.

    Merci à vous

  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 : 45
    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
    Bonjour,

    Si tu as bien fait ton pom.xml, il te suffit de lancer la commande mvn eclipse:eclipse, ce qui génèrera (entre autres) les fichiers .classpath et .project.
    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 à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par romaintaz Voir le message
    Bonjour,

    Si tu as bien fait ton pom.xml, il te suffit de lancer la commande mvn eclipse:eclipse, ce qui génèrera (entre autres) les fichiers .classpath et .project.
    En fait, tout mon projet fonctionnait bien.

    Je veux en fait créer un autre fichier .bat et un pom général qui à l'éxécution me modifierai l'attribut path du tag <classpath> dans le fichier .classpath de mon projet.

    par exemple, dans le .calsspath, j'ai :
    <classpathentry kind="lib" path="/xxxBusiness/commons-digester-1.8.jar"/>

    et donc je voudrais qu'a l'éxécution du bat sa devienne :
    <classpathentry kind="lib" path="/*adresse du repository local*/commons-digester-1.8.jar"/>

    je sais pas trop si je suis assez clair...!

  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 : 45
    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
    Le .classpath est un fichier qui est utilisé uniquement par Eclipse. Il ne doit pas être utilisé pour définir le classpath d'une application Java qui serait exécutée à l'extérieur d'Eclipse !

    Sinon, le fait de lancer mvn eclipse:eclipse va mettre à jour le .classpath. Toutes les dépendances définies dans le pom.xml seront référencées par rapport au repository local.

    J'ai par exemple ceci :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
      <classpathentry kind="var" path="M2_REPO/junit/junit/4.8.1/junit-4.8.1.jar" sourcepath="M2_REPO/junit/junit/4.8.1/junit-4.8.1-sources.jar"/>

    M2_REPO étant une variable définie au sein d'Eclipse pointant vers mon repo. local.
    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
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    a noter que pour faire du maven dans eclipse, il y a des plugins pour ça, comme m2clipse, qui intègrent à la configuration d'eclipse, de manière dynamique, tous les changements dans le pom et utilisent maven pour compiler

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    j'ai une petite question,
    si jamais mes fichiers de configuration sont en dehors du projet déclipse, est ce qu'il est possible pour moi de m'y référer dans le pom.xml ?
    Merci

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    maven ne connait pas eclipse et donc s'en fou


    et rien ne t'empeche effectivement dans les configuraitons de tes plugins, dans ta liste de resources ou autre de faire des ${basedir}/../../ etc


    exemple typique, quand il faut dire où se trouve le pom parent, c'est bien souvent ../parent/pom.xml

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    ok merci ! je vais tenter ça et vous tiens au courant

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    ça ne fonctionne pas, je ne comprends pas.
    j'ajoute une ressource avec le chemin mais cela a l'air de s'enméler !
    j'ai un fichier d'un dossier qui doit être filtré par un fichier d'un autre dossier et apparament il ne le trouve pas.

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    et on n'a pas de boule de cristal, donc une copie du pom, du message d'erreur, de la structure de dossier nous serait utile pour te répondre

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Voici mes messages d'erreur :

    GRAVE: Erreur lors de la configuration de la classe d'écoute de l'application (application listener) org.apache.myfaces.webapp.StartupServletContextListener
    java.lang.ClassNotFoundException: org.apache.myfaces.webapp.StartupServletContextListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4149)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
    23 mars 2012 11:01:55 org.apache.catalina.core.StandardContext listenerStart
    GRAVE: Erreur lors de la configuration de la classe d'écoute de l'application (application listener) org.springframework.web.util.Log4jConfigListener
    java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4149)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
    23 mars 2012 11:01:55 org.apache.catalina.core.StandardContext listenerStart
    GRAVE: Erreur lors de la configuration de la classe d'écoute de l'application (application listener) org.alfresco.web.app.ContextLoaderListener
    java.lang.ClassNotFoundException: org.alfresco.web.app.ContextLoaderListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4149)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
    23 mars 2012 11:01:55 org.apache.catalina.core.StandardContext listenerStart
    GRAVE: Erreur lors de la configuration de la classe d'écoute de l'application (application listener) org.alfresco.web.app.ContextListener
    java.lang.ClassNotFoundException: org.alfresco.web.app.ContextListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4149)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
    23 mars 2012 11:01:55 org.apache.catalina.core.StandardContext listenerStart
    GRAVE: L'installation des écouteurs (listeners) de l'application a été sautée suite aux erreurs précédentes



    voici une partie de mon pom :
    <build>
    <filters>
    <filter>D:/Projects/Projet/workspace/proj/src/main/filters/local/application.properties</filter>
    </filters>

    <directory>target</directory>
    <outputDirectory>target/classes</outputDirectory>
    <testOutputDirectory>target/test-classes</testOutputDirectory>
    <sourceDirectory>src/main/java</sourceDirectory>
    <testSourceDirectory>src/test/java</testSourceDirectory>

    <resources>
    <resource>
    <directory>D:/Projects/Projet/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/shared</directory>
    <filtering>true</filtering>
    <includes>
    <include>D:/Projects/Projet/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/shared/classes/alfresco-global.properties</include>
    <include>D:/Projects/Projet/workspace/proj/src/main/resources/alfresco/extension/cmis-api-context.xml</include> <include>D:/Projects/Projet/workspace/proj/src/main/resources/alfresco/extension/subsystems/**/fichier.properties</include>
    <include>D:/Projects/Projet/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/shared/classes/projet/*.properties</include>
    <include>log4j.xml</include>
    </includes>
    </resource>
    <resource>
    <directory>src/main/resources</directory>
    <filtering>false</filtering>
    </resource>
    </resources>


    Voilà merciii

  12. #12
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    1) le message n'a rien à voir avec un quelconque filtrage. Vous avez juste oublié de mettres vos dépendances dans votre pom.xml du coup ils ne sont pas ajoutés à votre war
    2) évitez les chemin absolu dans le pom, il ne marcheront ni chez votre collègue, ni sur votre serveur d'intégration continue si vous en avez un, ni chez vous dans 2 ans.
    3) évitez de référencer des trucs qui ne seront jamais sotcké dans le svn, comme vos .metadata de eclipse.

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Je n'ai pas mis mon pom intégralement, et je n'ai donc pas oublié de mettre mes dépendances, elles y sont toutes.
    Avant mon externalisation de configration cela fonctionnait très bien.

    je ne parviens pas à mettre un chemin relatif avec les includes un ../chemin me donne un chemin non souhaité.

    je vais tenter avec des références autre que mes metadata, merci beaucoup.

  14. #14
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    je ne sais pas ce que tu appelle externalisatin, mais il ne devrait pas y avoir de .metadata. J'ignore comment ce pom a été réalisé mais ca m'a tout l'air d'un beau bordel


    Code xml : 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
    29
    30
    31
    <build>
    <filters>
    <filter>src/main/filters/local/application.properties</filter>
    </filters>
     
    <directory>target</directory>
    <outputDirectory>target/classes</outputDirectory>
    <testOutputDirectory>target/test-classes</testOutputDirectory>
    <sourceDirectory>src/main/java</sourceDirectory>
    <testSourceDirectory>src/test/java</testSourceDirectory>
     
    <!--Copiez ces ressources dans votre projet si vous en avez besoin. Maven ne connait pas eclipse alors n'allez pas lui faire chercher des trucs à l'intérieur des plugins d'eclipse!!! 
    Pour les trucs relatifs au projet:
    ${basedir}/../parent/src/tout/ce/que/tu/veux
     
    <resources>
    <resource>
    <directory>D:/Projects/Projet/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/shared</directory>
    <filtering>true</filtering>
    <includes>
    <include>D:/Projects/Projet/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/shared/classes/alfresco-global.properties</include>
    <include>D:/Projects/Projet/workspace/proj/src/main/resources/alfresco/extension/cmis-api-context.xml</include> <include>D:/Projects/Projet/workspace/proj/src/main/resources/alfresco/extension/subsystems/**/fichier.properties</include>
    <include>D:/Projects/Projet/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/shared/classes/projet/*.properties</include>
    <include>log4j.xml</include>
    </includes>
    </resource>
    <resource>
    <directory>src/main/resources</directory>
    <filtering>false</filtering>
    </resource>
    </resources>-->

    et pour le message d'erreur, les dépendances manquent, je suis sur que si vous allez voir la section dependency, ces librairies n'y sont pas ou sont mise avec un scope "provided"

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    oui j'avoue que c'est un peu la cata ! je reprends un projet et je ne connais paaaas du touuuut Maven et tout ce qui est pom.xml, je découvre au fur et à mesure,
    je vais retenter avec ce chemin relatif merci beaucoup
    je vous tiens au courant de mes avancées !

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    en effet, mes dépendances n'étaient pas bien liées au projet. Merci.
    par contre, j'ai d'autres erreurs qui apparaissent, je voudrais savoir comment obtenir le bon chemin avec le classpath dans un fichier xml,
    par exemple <value> classpath:../project/fichier.properties</value>
    le "../" me donne une erreur et le ${basedir} aussi, je ne sais pas comment faire !! désolé

Discussions similaires

  1. Modif CHOWN via client FTP
    Par jissay dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 05/03/2008, 16h28
  2. .vba echo dans un fichier .txt via .bat
    Par ely_j2002 dans le forum VBScript
    Réponses: 5
    Dernier message: 09/03/2007, 15h23
  3. [Axis][Débutant]Activation du deploy.wsdd via .bat
    Par Mélissa dans le forum Services Web
    Réponses: 9
    Dernier message: 10/01/2007, 11h18
  4. Script des modifications effectuées via la console
    Par secdeouf dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 05/10/2006, 19h28
  5. [MySQL] suppression-modification base via php
    Par mangamanga dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 16/06/2006, 21h52

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