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 :

Problème multi module


Sujet :

Maven Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 53
    Par défaut Problème multi module
    Bonjour à tous !

    Voila,je suis en train de préparer un environnement et une architecture de base pour une appli Maven GWT.

    Pour faire bien,je l'ai fait en multi modules. mon projet parent est ce, les trois modules sont ce-client, ce-services et ce-model.

    Dans une classe Java de ce-client, j'ai besoin d'un appel à une classe de ce-services.
    Je vais donc importer le projet avec Maven. Cependant,je ne sais paspourquoi,rien ne fonctionne.Si j'ajoute le projet en dépendances via Eclipse, cela fonctionne, mais pas avec Maven.

    Voici mes poms :

    pom-parent :

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    <?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/maven-v4_0_0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>com.novedia.ce</groupId>
    	<artifactId>ce</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<packaging>pom</packaging>
    	<modules>
    		<module>ce-client</module>
    		<module>ce-services</module>
    		<module>ce-model</module>
    	</modules>
     
    	<properties>
     
    		<!-- convenience to define GWT version in one place -->
    		<gwt.version>2.0.2</gwt.version>
     
    		<!--  tell the compiler we can use 1.5 -->
    		<maven.compiler.source>1.5</maven.compiler.source>
    		<maven.compiler.target>1.5</maven.compiler.target>
     
    	</properties>
    	<dependencies>
    		<!--  GWT dependencies (from central repo) -->
    		<dependency>
    			<groupId>com.google.gwt</groupId>
    			<artifactId>gwt-servlet</artifactId>
    			<version>${gwt.version}</version>
    			<scope>runtime</scope>
    		</dependency>
    		<dependency>
    			<groupId>com.google.gwt</groupId>
    			<artifactId>gwt-user</artifactId>
    			<version>${gwt.version}</version>
    			<scope>provided</scope>
    		</dependency>
    		<dependency>
          		<groupId>junit</groupId>
    		    <artifactId>junit</artifactId>
    		    <version>4.7</version>
    		    <scope>test</scope>
       		</dependency>
        </dependencies>
     
    	<build>
       		<finalName>gwt</finalName>
        	<outputDirectory>war/WEB-INF/classes</outputDirectory>
        	<plugins>
          		<plugin>
    		        <groupId>org.codehaus.mojo</groupId>
    		        <artifactId>gwt-maven-plugin</artifactId>
    		        <version>1.2</version>
    		        <executions>
              			<execution>
                			<goals>
    <!--			              <goal>compile</goal>-->
    			              <goal>generateAsync</goal>
    			              <goal>test</goal>
                			</goals>
              			</execution>
            		</executions>
            		<configuration>
    		          <runTarget>com.tuto.TestGwtMaven.Application/Application.html</runTarget>
    		          <webappDirectory>war</webappDirectory>	
    		          <gwtVersion>${gwt.version}</gwtVersion>
    		          <generateDirectory>src/main/java</generateDirectory>
            		</configuration>
          		</plugin>
          		<plugin>
    		        <groupId>org.apache.maven.plugins</groupId>
    		        <artifactId>maven-compiler-plugin</artifactId>
    		        <version>2.0.2</version>
    		        <configuration>
                		<source>${maven.compiler.source}</source>
                		<target>${maven.compiler.target}</target>
              		</configuration>
          		</plugin>
        	</plugins>
        </build>
     
    </project>
    pom de ce-client :

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    <?xml version="1.0" encoding="UTF-8"?>
    <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <modelVersion>4.0.0</modelVersion>
      <parent>
        <artifactId>ce</artifactId>
        <groupId>com.novedia.ce</groupId>
        <version>0.0.1-SNAPSHOT</version>
      </parent>
      <packaging>war</packaging>
      <groupId>com.novedia.ce</groupId>
      <artifactId>ce-client</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <name>ce-client</name>
      <url>http://maven.apache.org</url>
     
      <properties>
     
    		<!-- convenience to define GWT version in one place -->
    		<gwt.version>2.0.3</gwt.version>
     
    		<!--  tell the compiler we can use 1.5 -->
    		<maven.compiler.source>1.5</maven.compiler.source>
    		<maven.compiler.target>1.5</maven.compiler.target>
     
      </properties>
     
      <dependencies>
    		<dependency>
    			<groupId>${groupId}</groupId>
    			<artifactId>ce-services</artifactId>
    			<version>${version}</version>
    		</dependency>
    		<dependency>
    			<groupId>${groupId}</groupId>
    			<artifactId>ce-services</artifactId>
    			<version>${version}</version>
    			<type>java-source</type>
    		</dependency>
    	    <dependency>
    	      <groupId>junit</groupId>
    	      <artifactId>junit</artifactId>
    	      <version>3.8.1</version>
    	      <scope>test</scope>
    	    </dependency>
    	    <dependency>
    			<groupId>com.google.gwt</groupId>
    			<artifactId>gwt-servlet</artifactId>
    			<version>${gwt.version}</version>
    			<scope>runtime</scope>
    		</dependency>
    		<dependency>
    			<groupId>com.google.gwt</groupId>
    			<artifactId>gwt-user</artifactId>
    			<version>${gwt.version}</version>
    			<scope>provided</scope>
    		</dependency>
    <!--   		<dependency>-->
    <!--			<groupId>${groupId}</groupId>-->
    <!--			<artifactId>ce-model</artifactId>-->
    <!--			<version>${version}</version>-->
    <!--			<type>java-source</type>-->
    <!--		</dependency>-->
    <!--		<dependency>-->
    <!--			<groupId>${groupId}</groupId>-->
    <!--			<artifactId>ce-services</artifactId>-->
    <!--			<version>${version}</version>-->
    <!--			<type>java-source</type>-->
    <!--		</dependency>	-->
      </dependencies>
    </project>
    pom de ce-services

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <?xml version="1.0" encoding="UTF-8"?>
    <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <modelVersion>4.0.0</modelVersion>
      <parent>
        <artifactId>ce</artifactId>
        <groupId>ce</groupId>
        <version>0.0.1-SNAPSHOT</version>
      </parent>
      <groupId>com.novedia.ce</groupId>
      <artifactId>ce-services</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <name>ce-services</name>
      <url>http://maven.apache.org</url>
     
      <properties>
    		<!-- convenience to define GWT version in one place -->
    		<gwt.version>2.0.3</gwt.version>
      </properties>
     
      <dependencies>
    		<dependency>
    			<groupId>com.google.gwt</groupId>
    			<artifactId>gwt-user</artifactId>
    			<version>${gwt.version}</version>
    			<scope>provided</scope>
    		</dependency>
    	    <dependency>
    			<groupId>com.google.gwt</groupId>
    			<artifactId>gwt-servlet</artifactId>
    			<version>${gwt.version}</version>
    			<scope>runtime</scope>
    		</dependency>
        	<dependency>
          		<groupId>junit</groupId>
          		<artifactId>junit</artifactId>
          		<version>3.8.1</version>
          		<scope>test</scope>
       		</dependency>
      </dependencies>
     
      <build>
    	<plugins>
    		<plugin>
    	        <groupId>org.apache.maven.plugins</groupId>
    	        <artifactId>maven-source-plugin</artifactId>
    	        <executions>
    	          <execution>
    	            <id>attach-sources</id>
    	            <phase>verify</phase>
    	            <goals>
    	              <goal>jar</goal>
    	            </goals>
    	          </execution>
    	        </executions>
    	      </plugin>	
    	</plugins>	
    </build>
    </project>
    Merci à tous

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 53
    Par défaut
    Alors la je comprends plus...

    Eclipse me reconnait les imports sans soucis.Mais maven plante disant que la classe est introuvable.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 53
    Par défaut
    Je ne comprends toujours pas. Mes sources sont pourtant normalement ajoutées au projet via Maven, mais j'obtiens toujours le même message :

    No source code is available for type com.novedia.ce.services.GreetingServiceAsync; did you forget to inherit a required module?

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    tu compile comment en ligne de commande? Donne nous l'output complet de maven.

  5. #5
    Membre éclairé Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Par défaut
    Je suis confronté au meme problème pour un projet multimodule maven.

    J'utilise une classe de mon model situé dans le module-core de mon projet maven. J'ai l'impression de générer correctement les sources de mon core pour les liés a GWT et qu'il les compile en javascript

    donc dans le pom.xml du module-core :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-source-plugin</artifactId>
    				<executions>
    					<execution>
    						<id>attach-sources</id>
    						<phase>verify</phase>
    						<goals>
    							<goal>jar</goal>
    						</goals>
    					</execution>
    				</executions>
    			</plugin>
    dans mon repo local, les fichiers semble ok :
    core-0.0.1-SNAPSHOT.jar
    core-0.0.1-SNAPSHOT-sources.jar
    j'ai regardé dans le source, je vois bien mon fichier.java

    dans le pom.xml de mon client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <dependency>
    			<groupId>fr.projet</groupId>
    			<artifactId>core</artifactId>
    			<version>0.0.1-SNAPSHOT</version>
    		</dependency>
     
    		<dependency>
    			<groupId>fr.projet</groupId>
    			<artifactId>core</artifactId>
    			<version>0.0.1-SNAPSHOT</version>
    			<type>java-source</type>
    		</dependency>
    et dans mon module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     <source path="client" />
    	 <source path="fr.projet.core.model" />
    j'ai aussi essayé <source path="model" />

    rien y fait, il ne trouve pas mon fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    [INFO] Compiling module fr.projet.gwt.Application
    [INFO]    Validating newly compiled units
    [INFO]       [ERROR] Errors in 'file:/C:/Users/OIF/Desktop/workspace/parent/gwt/src/main/java/fr/projet/gwt/client/Application.java'
    [INFO]          [ERROR] Line 13: No source code is available for type fr.projet.core.model.Article; did you forget to inherit a required module?
    [INFO]    Finding entry point classes
    [INFO]       [ERROR] Unable to find type 'fr.projet.gwt.client.Application'
    [INFO]          [ERROR] Hint: Previous compiler errors may have made this type unavailable
    [INFO]          [ERROR] Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly

  6. #6
    Membre chevronné
    Profil pro
    Lead Tech Agile
    Inscrit en
    Septembre 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Lead Tech Agile

    Informations forums :
    Inscription : Septembre 2004
    Messages : 316
    Par défaut
    @Gamergeo

    C'est un problème d'intéraction entre GWT et Maven.

    J'ai répondu à ce problème sur le post de miya qui à le même pb que toi.

    Voici notre discussion :
    http://www.developpez.net/forums/d88...e/#post5235051

    Pour résumer tu dois bien définir le chemin des sources des fichiers Java que tu utilises côté GWT dans le fichier Application.gwt.xml

    Ensuite tu dois t'assurer que les fichiers Java sont bien copié dans le classpath en configurant correctement le POM.

    Deux possibilités :
    - soit tu génère un fichier ce-modele-source.jar que tu ajoute en dépendance à ce-client.
    - soit tu copies les fichiers Java comme si ce sont des resources avec http://maven.apache.org/plugins/mave...e-exclude.html

    Par contre fais attention, tu ne dois pas avoir besoin d'appeler une classe de ce-service dans la couche cliente de GWT.

Discussions similaires

  1. Problème de dépendance multi-module MAVEN
    Par Lapprenti55 dans le forum Maven
    Réponses: 0
    Dernier message: 08/11/2012, 13h48
  2. Problème multi modules
    Par DeSoL4tioN dans le forum Maven
    Réponses: 7
    Dernier message: 10/08/2012, 11h43
  3. Problème projet multi-modules
    Par Samildanach dans le forum Maven
    Réponses: 1
    Dernier message: 10/01/2009, 16h27
  4. BUILD ERROR sur création d'un projet multi-modules
    Par elitost dans le forum Maven
    Réponses: 1
    Dernier message: 28/08/2006, 15h23
  5. [Oracle9i]Problème création module d'écoute
    Par Gidrah dans le forum Oracle
    Réponses: 2
    Dernier message: 25/04/2006, 19h32

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