Bonjour.
Pour faire simple (enfin essayer), j'ai un projet maven2 multi modules.
Un module ejb et un module app. Le jar généré dans le module ejb doit contenir les dépendances. Le module app génère l'ear.
Le pom du parent
Code XML : 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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>be.tuto</groupId> <artifactId>cendo2015</artifactId> <version>1.0</version> <packaging>pom</packaging> <name>cendo2015</name> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>6.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.18.1</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> </plugins> </build> <dependencyManagement> <dependencies> </dependencies> </dependencyManagement> <modules> <module>modules/ejb</module> <module>modules/app</module> </modules>
Le pom du module ejb
Code XML : 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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>be.tuto</groupId> <artifactId>cendo2015</artifactId> <version>1.0</version> </parent> <artifactId>cendo2015-ejb</artifactId> <packaging>ejb</packaging> <name>${project.artifactId}</name> <dependencies> <dependency> <groupId>be.tuto</groupId> <artifactId>test2015</artifactId> <type>jar</type> <version>1.0</version> <optional>true</optional> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ejb-plugin</artifactId> <version>2.5.1</version> <configuration> <ejbVersion>3.0</ejbVersion> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.6</version> <executions> <execution> <id>create-my-bundle</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </execution> </executions> </plugin> </plugins> </build>
et celui du module app
Code XML : 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 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>be.tuto</groupId> <artifactId>cendo2015</artifactId> <version>1.0</version> </parent> <artifactId>cendo2015-app</artifactId> <name>${project.artifactId}</name> <packaging>ear</packaging> <dependencies> <dependency> <groupId>be.tuto</groupId> <artifactId>cendo2015-ejb</artifactId> <type>ejb</type> <version>1.0</version> <classifier>jar-with-dependencies</classifier> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ear-plugin</artifactId> <version>2.10.1</version> <configuration> <modules> <ejbModule> <groupId>be.tuto</groupId> <artifactId>cendo2015-ejb</artifactId> <classifier>jar-with-dependencies</classifier> </ejbModule> </modules> </configuration> </plugin> </plugins> </build>
Si je fais un mvn clean package, ça ne marche pas.
Le jar avec les dépendances est bien créé et installé dans mon repository.
Mais build failure pour le module app
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 [INFO] Building jar: ...\cendo2015\modules\ejb\target\cendo2015-ejb-1.0.jar [INFO] [assembly:single {execution: default}] [INFO] Building jar: ...\cendo2015\modules\ejb\target\cendo2015-ejb-1.0-jar-with-dependencies.jar [INFO] [install:install {execution: default-install}] [INFO] Installing ...\cendo2015\modules\ejb\target\cendo2015-ejb-1.0.jar to ...\.m2\repository\be\tuto\cendo2015-ejb\1.0\cendo2015-ejb-1.0.jar [INFO] Installing ...\cendo2015\modules\ejb\target\cendo2015-ejb-1.0-jar-with-dependencies.jar to ...\.m2\repository\be\tuto\cendo2015-ejb\1.0\cendo2015-ejb-1.0-jar-with-dependencies.jar
Le truc bizzare c'est qu'il ne m'indique pas la version 1.0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 [INFO] [ear:generate-application-xml {execution: default-generate-application-xml}] [INFO] ------------------------------------------------------------------------ [ERROR] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Artifact[ejb:be.tuto:cendo2015-ejb:jar-with-dependencies] is not a dependency of the project.
Et ensuite, sans rien toucher je me place dans le module app et je fais un mvn clean package et ... ça marche !
Je ne comprends pas ce qui pose problème. Un bug du plugin ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [INFO] [ear:ear {execution: default-ear}] [INFO] Copying artifact [ejb:be.tuto:cendo2015-ejb:jar-with-dependencies:1.0] to [cendo2015-ejb-1.0-jar-with-dependencies.jar]
Merci pour votre aide.
Partager