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]Partage de ressources


Sujet :

Maven Java

  1. #1
    Membre habitué Avatar de DanielW33
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2006
    Messages : 327
    Points : 164
    Points
    164
    Par défaut [Maven]Partage de ressources
    J'ai un projet X qui dit utiliser des ressources d'un projet Y ( src, jsp, tld , img ...)
    Est_il possible de faire un "lien virtuel" (genre ajouter un dependency de type source ) vers mon projet Y dans le fichier le pom.xml de X ?

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2005
    Messages : 102
    Points : 130
    Points
    130
    Par défaut
    Salut

    Dans la dépendance que tu déclares, tu peux ajouter la ligne suivante :

    Ensuite tu refais un mvn eclipse:eclipse et ca devrait être bon !

    A plus,
    Mathieu

  3. #3
    Membre habitué Avatar de DanielW33
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2006
    Messages : 327
    Points : 164
    Points
    164
    Par défaut
    En ajoutant le tag <source> une erreur apparait :
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    [INFO] ------------------------------------------------------------------------
    [ERROR] FATAL ERROR
    [INFO] ------------------------------------------------------------------------
    [INFO] Error building POM (may not be this project's POM)
     
    Project ID: unknown
    POM Location: C:\WorkspaceIRAD7\...\pom.xml
     
    Reason: Parse error reading POM. Reason: Unrecognised tag: 'source' (position: START_TAG seen ...</version>\r\n\t\t\t<source>... @44:12)
     
     
    [INFO] ------------------------------------------------------------------------
    [INFO] Trace
    org.apache.maven.reactor.MavenExecutionException: Parse error reading POM. Reason: Unrecognised tag: 'source' (position: START_TAG seen ...</version>\r\n\t\t
    \t<source>... @44:12)
            at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:365)
            at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:278)
            at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:115)
            at org.apache.maven.cli.MavenCli.main(MavenCli.java:256)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:324)
            at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
            at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
            at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
            at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
    Caused by: org.apache.maven.project.InvalidProjectModelException: Parse error reading POM. Reason: Unrecognised tag: 'source' (position: START_TAG seen ...</
    version>\r\n\t\t\t<source>... @44:12)
            at org.apache.maven.project.DefaultMavenProjectBuilder.readModel(DefaultMavenProjectBuilder.java:1310)
            at org.apache.maven.project.DefaultMavenProjectBuilder.readModel(DefaultMavenProjectBuilder.java:1270)
            at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromSourceFileInternal(DefaultMavenProjectBuilder.java:414)
            at org.apache.maven.project.DefaultMavenProjectBuilder.build(DefaultMavenProjectBuilder.java:192)
            at org.apache.maven.DefaultMaven.getProject(DefaultMaven.java:515)
            at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:447)
            at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:351)
            ... 11 more
    Caused by: org.codehaus.plexus.util.xml.pull.XmlPullParserException: Unrecognised tag: 'source' (position: START_TAG seen ...</version>\r\n\t\t\t<source>...
    @44:12)
            at org.apache.maven.model.io.xpp3.MavenXpp3Reader.parseDependency(MavenXpp3Reader.java:1261)
            at org.apache.maven.model.io.xpp3.MavenXpp3Reader.parseModel(MavenXpp3Reader.java:2323)
            at org.apache.maven.model.io.xpp3.MavenXpp3Reader.read(MavenXpp3Reader.java:4422)
            at org.apache.maven.project.DefaultMavenProjectBuilder.readModel(DefaultMavenProjectBuilder.java:1306)
            ... 17 more
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: < 1 second
    [INFO] Finished at: Fri Feb 02 09:10:21 CET 2007
    [INFO] Final Memory: 1M/2M
    [INFO] ------------------------------------------------------------------------
    Ce tag n'a pas l'air d'etre reconnu dans le fichier pom

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Points : 1 524
    Points
    1 524
    Par défaut
    Si ton projet est un war, tu peux créer un autre war contenant tes resources partagés, l'ajouter comme dépendence de ton projet et configurer le plugin war.

    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
    29
    30
    31
    32
    33
     
      <dependency>
        <groupId>org.mycompany.shared</groupId>
        <artifactId>my-shared-webapp</artifactId>
        <version>1.0-SNAPSHOT</version>
        <type>war</war>
        <scope>runtime</scope>
      </dependency>
     
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.0.1</version>
            <configuration>
              <archiveClasses>false</archiveClasses>
              <dependentWarExcludes>META-INF/**,WEB-INF/web.xml,WEB-INF/lib/**
              </dependentWarExcludes>
            </configuration>
            <executions>
              <execution>
                <phase>compile</phase>
                <goals>
                  <!-- Needed to get the shared war overlay to do its thing before jetty:run -->
                  <goal>inplace</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
        ...
      </build>
    N'oublie pas de configurer le plugin clean pour supprimer toutes les resources partagées copiées par cette conf dans ton arborescence de sources.

  5. #5
    Membre habitué Avatar de DanielW33
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2006
    Messages : 327
    Points : 164
    Points
    164
    Par défaut
    C'est farfait pour ce que je veux.
    Maintenant je voudrais filtrer les import qui sont mis dans apporte par cette manip ( le dependentWarExcludes ne semble pas fonctionner lors d'une compile du projet principal )

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Points : 1 524
    Points
    1 524
    Par défaut
    Citation Envoyé par DanielW33
    C'est farfait pour ce que je veux.
    Maintenant je voudrais filtrer les import qui sont mis dans apporte par cette manip ( le dependentWarExcludes ne semble pas fonctionner lors d'une compile du projet principal )
    Comment çà? Je l'utilise le dependentWarExcludes et çà fonctionne.
    As-tu une erreur, ou plus d'explications sur le non-fonctionnement?

  7. #7
    Membre habitué Avatar de DanielW33
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2006
    Messages : 327
    Points : 164
    Points
    164
    Par défaut
    Citation Envoyé par evenisse
    As-tu une erreur, ou plus d'explications sur le non-fonctionnement?
    Non il n y as pas d erreur

    Citation Envoyé par evenisse
    Si ton projet est un war, tu peux créer un autre war contenant tes resources partagés

    En fait, etant donne que le war dont depend mon projet est un projet web je ne voudreais pas recreer un autre war, mais utilisé celui qui est creer par l'install du projet (ainsi avoir toujours les updates des ressources )

    donc je fais dependre mon projet du war contenu dans mon repository
    Il depose bien toutes les ressources dans target/war/work/monProjet, mais aucun filtre n est utilisé ( --> ie le dependentWarExculdes qui ne semble pas fairte sont office de filtre )

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Points : 1 524
    Points
    1 524
    Par défaut
    target/war/work/monProjet est le répertoire où est desarchivé le war que tu veux utilisé, ensuite les fichiers de ce répertoire sont copié en tenant compte des excludes dans ton répertoire de sources. Ce sont ces fichiers qu'il faut supprimer en configurant le plugin clean car elle pollue ton répertoire de sources et tu risques de les committer par erreur.

  9. #9
    Membre habitué Avatar de DanielW33
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2006
    Messages : 327
    Points : 164
    Points
    164
    Par défaut
    Effectivement, tout est comme je le desire
    MILLES EXCUSES
    Moi

  10. #10
    Membre à l'essai
    Inscrit en
    Avril 2002
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    Je remonte ce message, car j'ai l'impression que c'est ce que je veux réaliser.

    J'ai une classe C dans un war A.
    J'ai un war B où j'aimerai utiliser la classe C.

    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
    29
    30
    31
    32
    <dependency>
        <groupId>org.mycompany.shared</groupId>
        <artifactId>my-shared-webapp</artifactId>
        <version>1.0-SNAPSHOT</version>
        <type>war</war>
        <scope>runtime</scope>
      </dependency>
     
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.0.1</version>
            <configuration>
              <archiveClasses>false</archiveClasses>
              <dependentWarExcludes>META-INF/**,WEB-INF/web.xml,WEB-INF/lib/**
              </dependentWarExcludes>
            </configuration>
            <executions>
              <execution>
                <phase>compile</phase>
                <goals>
                  <!-- Needed to get the shared war overlay to do its thing before jetty:run -->
                  <goal>inplace</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
        ...
      </build>
    J'ai essayé de mettre ca dans mon pom de B.
    J'ai fait ma commande mvn eclipse:eclipse.
    Mais rien n'y fait, B ne voit pas ma classe C.

    Aurais-je mal compris le but du code ci-dessus ?

    Merci

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour!

    Citation Envoyé par evenisse Voir le message
    Si ton projet est un war, tu peux créer un autre war contenant tes resources partagés, l'ajouter comme dépendence de ton projet et configurer le plugin war.
    Là tu assumes que le war (dans mon cas c'est un jar en fait) est déjà compilé dans quelque repository, n'est-ce pas? Et si ce n'est pas le cas? Il n'y a pas une façon de faire maven aller jusqu'à mon autre projet partagé, le compiler, créer son jar, et l'ajouter comme une dépendance à mon projet principal?

    Merci,
    Tiago.

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

Discussions similaires

  1. [Maven]Partage de ressources (2)
    Par DanielW33 dans le forum Maven
    Réponses: 5
    Dernier message: 07/02/2007, 18h58
  2. Partage de Ressources en Wifi
    Par faressam dans le forum Hardware
    Réponses: 5
    Dernier message: 30/01/2007, 13h26
  3. Partage des ressources sous windows XP
    Par GBAGO dans le forum Windows XP
    Réponses: 2
    Dernier message: 20/02/2006, 07h40
  4. Comment partager les ressources entre 2 threads?
    Par remimichot dans le forum Concurrence et multi-thread
    Réponses: 7
    Dernier message: 29/12/2005, 09h17
  5. Logiciel de partage de ressources
    Par nebule dans le forum Windows
    Réponses: 2
    Dernier message: 18/04/2005, 11h57

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