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 ?
Version imprimable
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:<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 pomCode:
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:
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.Citation:
Envoyé par DanielW33
As-tu une erreur, ou plus d'explications sur le non-fonctionnement?
Non il n y as pas d erreurCitation:
Envoyé par evenisse
Citation:
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 :hola:
Moi :traine:
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:
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.