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 :

Maven : injection des contantes dans les dependencies


Sujet :

Maven Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 99
    Points : 1
    Points
    1
    Par défaut Maven : injection des contantes dans les dependencies
    Bonjour,

    Voici un extrait d'un fichier pom.xml :

    <dependencies>
    <dependency>
    <groupId>alfresco-enterprise-tomcat-2.2.4</groupId>
    <artifactId>alfresco-enterprise</artifactId>
    <version>2.2.4</version>
    <scope>system</scope>
    <systemPath>${appdeplib.path}/alfresco-web-client.jar</systemPath>
    </dependency>
    </depedencies>


    <build>
    <!-- Customize here your webapp name - default: alfresco.war -->
    <finalName>${webapp.name}</finalName>
    <!-- Used to access Sourcesense repository for writing. Public version not available, see README.txt -->
    <!-- <extensions>-->
    <!-- <extension>-->
    <!-- <groupId>org.apache.maven.wagon</groupId>-->
    <!-- <artifactId>wagon-webdav</artifactId>-->
    <!-- <version>1.0-beta-3</version>-->
    <!-- </extension>-->
    <!-- </extensions>-->
    <!-- In certain cases we do build time filtering with the single sourcing application.properties -->
    <filters>
    <filter>src/main/properties/${env}/application.properties</filter>
    </filters>

    Pourquoi la valeur ${appdeplib.path} dans l'attribut systemPath n'est pas pris en compte ?
    Je dispose d'une fichier application.properties à l'endroit correct avec la clé appdeplib.path=...
    L'erreur (indirecte) est :

    [ERROR]

    The following POM validation errors were detected:

    - For dependency Dependency {groupId=alfresco-enterprise-tomcat-2.2.4, artifactId=alfresco-enterprise, version=2.2.4, type=jar}: system-scoped dependency must specify an absolute path systemPath.

  2. #2
    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
    que vaut appdeplib.path

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 99
    Points : 1
    Points
    1
    Par défaut
    C:/intuitiv/src/workspace-msc-224/SDK AlfrescoEmbedded

    J'ai essaié aussi :

    C:\\intuitiv\src\\workspace-msc-224\\SDK AlfrescoEmbedded


    mais aucun des 2 change quoi que ce soit. Même problème.


    NB : de toute façon ça me dit cela quel que soit la valeur de appdeplib.path

  4. #4
    Membre régulier
    Inscrit en
    Août 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Août 2007
    Messages : 84
    Points : 98
    Points
    98
    Par défaut
    Il faudrait déjà voir ce que ça donne si le chemin vers le JAR ne contient pas d'espaces.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 99
    Points : 1
    Points
    1
    Par défaut
    Pas faux.
    Mais avant que tu en parles, même si je mets un c:\toto j'ai la même erreur.
    Il ne s'agit pas d'un problème de formatage de chaîne.

  6. #6
    Membre régulier
    Inscrit en
    Août 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Août 2007
    Messages : 84
    Points : 98
    Points
    98
    Par défaut
    Hum, en fait, il me semble que les <filters> sont à utiliser lors du filtrage de fichiers, il est fort possible que cela ne remplace pas les propriétés du POM courant.

    C'est facile à voir si tu remplaces le ${appdeplib.path} dans la déclaration de ta dépendance par un "vrai" chemin.

    Je ne vois d'ailleurs pas l'utilité de "propertiser" le chemin System d'une dépendance selon l'environnement.

    Si vraiment tu veux le faire, il faudra plutôt passer par un profil dans le POM.

    Le mieux serait peut-être de toute façon de mettre cette dépendance dans un repo

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 99
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Tomekaa Voir le message
    Hum, en fait, il me semble que les <filters> sont à utiliser lors du filtrage de fichiers, il est fort possible que cela ne remplace pas les propriétés du POM courant.

    C'est facile à voir si tu remplaces le ${appdeplib.path} dans la déclaration de ta dépendance par un "vrai" chemin.

    Je ne vois d'ailleurs pas l'utilité de "propertiser" le chemin System d'une dépendance selon l'environnement.

    Si vraiment tu veux le faire, il faudra plutôt passer par un profil dans le POM.

    Le mieux serait peut-être de toute façon de mettre cette dépendance dans un repo
    Effectivement à terme, les dépendances seront uniquement dans le repo. Mais il s'agit d'une bibliothèque .jar donc le chemin sera en dur dans le pom (properties ou autres)
    Je peasserai aussi par les profiles pour manager les différents environnement.

    Merci

  8. #8
    Membre VIP Avatar de kalysto
    Profil pro
    Développeur
    Inscrit en
    Mars 2003
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mars 2003
    Messages : 442
    Points : 568
    Points
    568
    Par défaut
    Les propriétés que tu utilises dans ton pom.xml doivent etre définies dans la balise properties de ton pom:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <properties>
      <appdeplib.path>C:/intuitiv/src/workspace-msc-224/SDK AlfrescoEmbedded</appdeplib.path>
    </properties>
    Tu peux aussi poser cette propriété dans un profile si tu veux la changer simplement.

Discussions similaires

  1. Injection des accents dans les nom de tables ?
    Par lathenor dans le forum SQLite
    Réponses: 3
    Dernier message: 21/05/2007, 11h36
  2. [EasyPHP] problème de visibilité des variable dans les includes
    Par d1g-2-d1g dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 23/10/2005, 01h55

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