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 de compilation


Sujet :

Maven Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 76
    Par défaut Problème de compilation
    Bonjour,

    Après avoir passé un peu de temps à m'arracher les cheveux sur différents problèmes de configurations (.jar et autres plugins d'Eclipse), on m'a dit que Maven pouvait m'aider. Souffrant à nouveau de problèmes de calvitie précoce, je finalement pris le tuto hibernate, basé sur Maven :
    --> documentation\manual\fr-FR\pdf\hibernate_reference.pdf
    du .zip de Distribution
    --> http://sourceforge.net/projects/hibe...3/3.6.5.Final/

    Outre que les consignes sont données dans le désordre, au moment de la compilation avec Maven, ils arrivent à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Compiling 1 source file to /home/steve/projects/sandbox/hibernateTutorial/target/classes
    tandis que je dois me contenter de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Nothing to compile - all classes are up to date
    Si cela parle à quelqu'un, je suis tout ouïe, et je l'en remercie d'avance pour ses conseils.

    Notez bien que j'suis un Windowsien pour qui installer signifie [Double-clic sur le install.exe puis Next Next Next sans lire les messages, et ça marche], donc ma compréhension de Maven est plus que limitée.

    A tout hasard, voici mes fichiers :

    pom.xml :
    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
    <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>TestHibernate</groupId>
    	<artifactId>TestHibernate</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<name>TestHibernate</name>
    	<description>Test d'Hibernate</description>
     
    	<build>
    		<!-- we dont want the version to be part of the generated war file name -->
    		<finalName>${TestHibernate.artifactId}</finalName>
    	</build>
     
    	<dependencies>
    		<dependency>
    			<groupId>org.hibernate</groupId>
    			<artifactId>hibernate-core</artifactId>
    			<version>3.6.3.Final</version>
    		</dependency>
    		<!-- Because this is a web app, we also have a dependency on the servlet api. -->
    		<dependency>
    			<groupId>javax.servlet</groupId>
    			<artifactId>servlet-api</artifactId>
    			<version>2.5</version>
    		</dependency>
    		<!-- Hibernate uses slf4j for logging, for our purposes here use the simple backend -->
    		<dependency>
    			<groupId>org.slf4j</groupId>
    			<artifactId>slf4j-simple</artifactId>
    			<version>1.6.1</version>
    		</dependency>
    		<!-- Hibernate gives you a choice of bytecode providers between cglib and javassist -->
    		<dependency>
    			<groupId>javassist</groupId>
    			<artifactId>javassist</artifactId>
    			<version>3.12.1.GA</version>
    		</dependency>
    	</dependencies>
     
    	<properties>
    		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    	</properties>
     
    </project>
    hibernate.cfg.xml :
    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
    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
    	<session-factory>
    		<!-- Database connection settings -->
    		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    		<property name="connection.url">jdbc:mysql://tibco-server:3306/dev</property>
    		<property name="connection.username">Developpeur</property>
    		<property name="connection.password">admin</property>
    		<!-- JDBC connection pool (use the built-in) -->
    		<property name="connection.pool_size">1</property>
    		<!-- SQL dialect -->
    		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    		<!-- Enable Hibernate's automatic session context management -->
    		<property name="current_session_context_class">thread</property>
    		<!-- Disable the second-level cache -->
    		<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
    		<!-- Echo all executed SQL to stdout -->
    		<property name="show_sql">true</property>
    		<!-- Drop and re-create the database schema on startup -->
    		<property name="hbm2ddl.auto">update</property>
    		<mapping resource="org/hibernate/tutorial/domain/Event.hbm.xml" />
    	</session-factory>
    </hibernate-configuration>
    Event.hbm.xml :
    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
    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
    	<session-factory>
    		<!-- Database connection settings -->
    		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    		<property name="connection.url">jdbc:mysql://tibco-server:3306/dev</property>
    		<property name="connection.username">Developpeur</property>
    		<property name="connection.password">admin</property>
    		<!-- JDBC connection pool (use the built-in) -->
    		<property name="connection.pool_size">1</property>
    		<!-- SQL dialect -->
    		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    		<!-- Enable Hibernate's automatic session context management -->
    		<property name="current_session_context_class">thread</property>
    		<!-- Disable the second-level cache -->
    		<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
    		<!-- Echo all executed SQL to stdout -->
    		<property name="show_sql">true</property>
    		<!-- Drop and re-create the database schema on startup -->
    		<property name="hbm2ddl.auto">update</property>
    		<mapping resource="org/hibernate/tutorial/domain/Event.hbm.xml" />
    	</session-factory>
    </hibernate-configuration>
    Event.java :
    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
    package org.hibernate.tutorial.domain;
     
    import java.util.Date;
     
    public class Event
    {
        private Long   id;
        private String title;
        private Date   date;
     
        public Event()
        {}
     
        public Long getId()
        {
            return id;
        }
     
        private void setId(Long id)
        {
            this.id = id;
        }
     
        public Date getDate()
        {
            return date;
        }
     
        public void setDate(Date date)
        {
            this.date = date;
        }
     
        public String getTitle()
        {
            return title;
        }
     
        public void setTitle(String title)
        {
            this.title = title;
        }
    }

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Bonjour,

    Le message indique que toutes les classes trouvées par Maven sont déjà compilées, et qu'il ne juge donc pas nécessaire de refaire le travail.

    Un peu plus de détails : à en voir ton pom.xml, tu ne spécifies pas le répertoire contenant ton code source. Donc par défaut, il s'agit de src/main/java.
    A en voir ta classe Java, tu dois donc avoir un fichier src/main/java/org/hibernate/tutorial/domain/Event.java. Me trompé-je ?

    Si ce n'est pas le cas, cela signifie tout simplement que ta classe Event.java ne se trouve pas dans le bon répertoire, et du coup Maven ne va rien trouver à compiler, d'où ton message.

    Si c'est le cas, alors cela signifie simplement que ta classe est déjà compilée, et se trouve dans le répertoire target/classes/org/hibernate/tutorial/domain/Event.class.

    Si tu souhaites recompiler le tout, il suffit de nettoyer ton répertoire target, en utilisant la commande mvn clean. Cela va simplement supprimer le répertoire target/

    Le plus simple sinon, c'est de compiler ton projet en lançant la commande mvn clean install. Cela se traduit par 2 opérations : le clean, que je viens d'expliquer, puis l'install. Cette opération signifie que Maven va compiler le code source, exécuter les tests unitaires, puis créer le package final (par exemple un .jar), puis l'installer (comprendre le copier) dans ton repository local.

    Le repository local est la "base d'artifacts" de Maven, sur ton disque dur local. Là, sont stockées toutes les dépendances (par exemple org.hibernate:hibernate-core). En faisant un mvn install, Maven va copier ta librairie dans le repository local, ce qui aura comme impact de la rendre disponible à n'importe quelle autre librairie.

    Je te laisse consulter les différents tutoriels (dont ceux présents sur DVP) pour en savoir plus.
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 76
    Par défaut
    Un peu plus de détails : à en voir ton pom.xml, tu ne spécifies pas le répertoire contenant ton code source. Donc par défaut, il s'agit de src/main/java.
    A en voir ta classe Java, tu dois donc avoir un fichier src/main/java/org/hibernate/tutorial/domain/Event.java.


    Si tu souhaites recompiler le tout, il suffit de nettoyer ton répertoire target, en utilisant la commande mvn clean. Cela va simplement supprimer le répertoire target/
    Youhou, t'es trop fort !!


    Mes anciennes expériences de gcc sont trop loin, j'avais oublié l'effet magique d'un clean avant une compilation...

    Merci beaucoup ... et à très bientôt.

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

Discussions similaires

  1. problème de compilation sous visual C++
    Par fabmili dans le forum MFC
    Réponses: 4
    Dernier message: 08/02/2004, 19h52
  2. problème de compil devc++ socket
    Par stefdem dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 11/12/2003, 11h33
  3. Réponses: 1
    Dernier message: 29/10/2003, 12h16
  4. Problème de compilation de la DLL du XMLRad
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 2
    Dernier message: 16/04/2003, 16h46
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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