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 :

file system dans un projet multimodules


Sujet :

Maven Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Points : 36
    Points
    36
    Par défaut file system dans un projet multimodules
    Bonjours les développeurs !

    Je me suis baladé sur le forum, j'ai trouvé des pistes mais rien qui ne marche.

    Mon objectif c'est de me retrouver dans mon filesystem sans passer par des chemins absolus (si c'est possible bien sur !).

    J'ai mon workspace, puis tous mes projets dedans ! Et dans ce workspace, j'ai créer un dossier dans lequel je veux stocker des informations.

    Dans mon pom parent, pour acceder a ce dossier, il sufffit d'utiliser {basedir}/../. Seulement mon enfant lui hérite aussi de cette propriété, sauf que son basedir c'est celui de son répertoire et pas celui du parent (les enfants sont dans le dossier parent).

    Et dans tout ca, j'aimerai retourner dans mon dossier de stockage des infos soit le repertoire parent du projet parent !

    Je ne sais pas si vous avez de nouvelles idées par rapport a cela, mais si vous avez une petite piste je suis preneur !

    Merci d'avance

  2. #2
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 197
    Points : 248
    Points
    248
    Par défaut
    Salut,

    Quel est ton problème de base ?
    Que veux-tu faire ?
    Pourquoi accéder de manière relative à des ressources ?

  3. #3
    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
    A priori la manière suivante devrait fonctionner :

    Dans ce que tu nommes le pom parent, spécifie une property comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <properties>
    (...)
    <parentPomBasedir>${basedir}</parentPomBasedir>
    (...)
    </properties>
    Les enfants n'auront plus qu'à utiliser ${parentPomBasedir} au lieu de ${basedir}

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Points : 36
    Points
    36
    Par défaut
    Merci pour vos réponse

    aheritier,
    J'ai besoin d'utiliser des chemins relatif pour accéder au dossier parent des racines des projets, et cela quelque soit ce dossier (en gros peut importe ou il est compiler dans mon systeme de fichier ca doit fontionner).

    En fait ce que j'aurais voulu faire c'est hériter a mes enfants des parametres static mais ce n'est pas possible


    Tomekaa,
    J'ai essayer ton systeme, seulement avec l'heritage la valeur de ${parentPomBasedir} sera le ${basedir} de l'enfant et non celui du parent

    J'ai trouver un moyen qui me satisafait peu mais je vais faire avec, c'est de déclarer, dans tous les pom enfants (c'est pr ca que j'aime pas) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <properties>
    <parentPomBasedir>../${basedir}</parentPomBasedir>
    </properties>

    Merci de votre aide !

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 197
    Points : 248
    Points
    248
    Par défaut
    ggalou08, ce que tu me donnes c'est déjà une solution technique (acceder aux reps parents ....). Quel est ton besoin d'origine. A quoi veux tu accéder ?? Que souhaites-tu partager ?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Points : 36
    Points
    36
    Par défaut
    A quoi veux tu accéder ??
    Le dossier parent du projet parent par les projets enfants qui sont situé dans le répertoire du projet parent !

    Je me suis arrangé avec mon cahier des charges pr utiliser des chemins absolus dans ce cas la, donc je n'ai plus de sourcis avec mes héritages dans les projets a multimodule.

    Merci de ton aide aheritier

  7. #7
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 197
    Points : 248
    Points
    248
    Par défaut
    Si tu as pu t'en sortir c'est bien.
    Cependant tu ne m'as tjrs pas dit ce que tu voulais récuperer dans ce projet parent ?

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Points : 36
    Points
    36
    Par défaut
    Je ne te l'ai pas dit parce que ca ne me semble pas primordial (du moins ca n'aurait pas aidé a resoudre le problème de base ), c'est simplement un fichier csv dans lequel je stock des données !

  9. #9
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 197
    Points : 248
    Points
    248
    Par défaut
    Justement ça l'ait.
    c'est pour cela qu'il faut que vous nous disiez un maximum d'infos pour que nous puissions vous aider correctement.
    Ce que tu aurait pu faire c'est un module particulier qui ne contienne que des ressources (dans ton cas le csv).
    Ceci va te créer un jar, qu'ensuite tu peux réutiliser via le plugin maven-remote-resource-plugin.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Points : 36
    Points
    36
    Par défaut
    et le jar que tu créé tu le met dans les répertoire de ton projet ? (si j'ai bien lu),

    parce que ta solution technique peut être intéressante !

    J'ai peut être oublier de préciser que l'ensemble de mes projets accèdent à ce répertoire et que certains projets accèdent au même fichier !
    Sachant aussi que le tout est manipuler par continuum (je ne maitrise pas le nommage des dossiers des projets qui est un nombre).

    Ce qui donne pour la structure des dossiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    workspace
      |-- 1 (projet a)
      |-- 2 (projet b)
      |...
      |-- 15 (projet multimodules)
      |      |-- module 1
      |      |-- module 2
      |-- dossierRessourcesCSV
    Et la tous les projets et tous les modules doivent pouvoir accéder à dossierRessourcesCSV dans lequel certain projet partage les même resources.

    Ma question devient donc :
    C'est possible de le faire avec maven-remote-resource-plugin sans utiliser de chemins absolu dans le pom ?

  11. #11
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 197
    Points : 248
    Points
    248
    Par défaut
    Si ton csv est utilisé au runtime de ton application, le maven-remote-resource-plugin va te permettre de recopier cette resource dans ton répertoire des classes de ton appli comme si il provenait pour chaque module de src/main/resources sauf qu'il n'est pas dupliqué. Tu le mets une seule fois dans le src/main/resources du module dossierRessourcesCSV ( avec la config du pom : http://maven.apache.org/plugins/mave...gin/usage.html) et dans tous tes modules tu ajoutes la dépendance ${project.groupId}:dossierRessourcesCSV:${project.version} et la config
    <plugin>
    <artifactId>maven-remote-resources-plugin</artifactId>
    <executions>
    <execution>
    <goals>
    <goal>process</goal>
    </goals>
    <configuration>
    <resourceBundles>
    <resourceBundle>${project.groupId}:dossierRessourcesCSV:${project.version}</resourceBundle>
    </resourceBundles>
    </configuration>
    </execution>
    </executions>
    </plugin>

    Si ton csv est utilisé pour les tests, j'utiliserais plutot le partage de jars de tests :
    http://maven.apache.org/guides/mini/...hed-tests.html
    Dans ce cas il faut aussi charger ton CSV via le classloader, ce dernier se trouvant dispo via la dépendance

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Points : 36
    Points
    36
    Par défaut
    Donc si je comprend bien le système,je dois :
    • mettre dans un jar par construction maven (mvn install) mon dossier de fichier CSV.
    • ajouter le plugin maven-remote-resources-plugin et sa conf dans mon pom.
    • utiliser les ressources bundles pour accéder depuis mon plugin.


    Si je veux faire uniquement de la lecture, je sais faire sans soucis ; mais si maintenant je veux de l'écriture, je peux dans un bundle ??? et ca met automatiquement a jours le jar ?

  13. #13
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 197
    Points : 248
    Points
    248
    Par défaut
    C'est ca par contre ca ne marche qu'en lecture. C'est fait pour partager des ressources (paramétrage, licenses, ...)
    En lecture/ecriture je ne vois pas (sauf revenir avec des chemins relatifs)

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Points : 36
    Points
    36
    Par défaut
    Désolé de pas avoir suivit de plus le sujet, j'ai eu d'autre chats a fouetter depuis mon dernier ...

    Donc je pense que je vais rester à mes chemins absolus qui pour le moment reste le plus simple a mettre en œuvre.

    En tout cas merci pr l'idée de partage de ressources, ca pourra peut être me servir plus tard !

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 11/05/2011, 17h15
  2. File system dans Windows CE
    Par al2000 dans le forum Windows Mobile
    Réponses: 0
    Dernier message: 09/03/2010, 11h08
  3. [SSIS] [2K5] Import dans File System automatique
    Par Quintouch dans le forum SSIS
    Réponses: 0
    Dernier message: 07/08/2009, 11h11
  4. naviguer dans le file system en C# utilisant XML
    Par infostars dans le forum Windows Forms
    Réponses: 4
    Dernier message: 05/02/2009, 11h57
  5. Réponses: 2
    Dernier message: 25/09/2008, 21h19

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