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 ?
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 ?
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 !
Code : Sélectionner tout - Visualiser dans une fenêtre à part <source>true</source>
A plus,
Mathieu
En ajoutant le tag <source> une erreur apparait :
Ce tag n'a pas l'air d'etre reconnu dans le fichier pom
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] ------------------------------------------------------------------------
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.
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.
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>
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.Envoyé par DanielW33
As-tu une erreur, ou plus d'explications sur le non-fonctionnement?
Non il n y as pas d erreurEnvoyé par evenisse
Envoyé par evenisse
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 )
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.
Effectivement, tout est comme je le desire
MILLES EXCUSES
Moi![]()
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.
J'ai essayé de mettre ca dans mon pom de B.
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 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
Bonjour!
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager