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 :

mvn package constuit un war avec des .java et pas des .class


Sujet :

Maven Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    171
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 171
    Par défaut mvn package constuit un war avec des .java et pas des .class
    Bonjour,

    Je construit un war de mon projet en utilisant la commande mvn package. Le problème c'est que lorsque je regarde le contenu de mon war, au lieu d'avoir des .class j'ai des fichier .java.

    Pouvez vous me dire d'où ça vien ?

    Voici le code de mon 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
    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
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
     
    <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>
     
    	<!-- informations basiques -->
    	<groupId>RMPTool</groupId>
    	<artifactId>RMPTool</artifactId>
    	<version>0.9.0-SNAPSHOT</version>
    	<packaging>war</packaging>
    	<dependencies>
    		<dependency>
    			<groupId>Infotel.framework</groupId>
    			<artifactId>Infotel-framework</artifactId>
    			<version>Infotel_framework_Diwip</version>
    		</dependency>
    		<dependency>
    			<groupId>org.antlr</groupId>
    			<artifactId>antlr-runtime</artifactId>
    			<version>2.7.6</version>
    		</dependency>
    		...
    	</dependencies>
     
    	<properties>
    		<currentVersion>${pom.version}</currentVersion>
    		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    	</properties>
     
     
    	<!--  Propriétés de build -->
    	<build>
    		<plugins>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-war-plugin</artifactId>
    				<configuration>
    					<warSourceDirectory>WebContent/</warSourceDirectory>
    					<webResources>
    						<resource>
    							<directory>ressources</directory>
    							<targetPath>WEB-INF/classes</targetPath>
    							<!--<filtering>true</filtering>-->
    							<excludes>
    								<exclude>**/daoBeansTests.xml</exclude>
    								<exclude>**/rmptoolTests.hibernate.cfg.xml</exclude>
    							</excludes>
    						</resource>
    					</webResources>
    				</configuration>
    			</plugin>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-compiler-plugin</artifactId>
    				<!-- indiquer à Maven une compilation avec le JDK 1.5  -->
    				<configuration>
    					<source>1.5</source>
    					<target>1.5</target>
    				</configuration>
    			</plugin>
    		</plugins>
    		<resources>
    			<resource>
    				<directory>src/</directory>
    				<excludes>
    					<exclude>tests/</exclude>
    				</excludes>
    			</resource>
    		</resources>
    	</build>
     
    	<reporting>
    	</reporting>
     
     
    	<!-- Plus d'informations sur le projet RMP Tool -->
    	<name>RMP Tool</name>
    	<description>
      	RMP Tool est une application de gestion des risques pour la société Infotel Conseil
      </description>
    	<inceptionYear>2010</inceptionYear>
     
     
     
    	<!-- Paramètres d'environnement -->
    	<repositories>
    		<repository>
    			<id>prime-repo</id>
    			<name>Prime Technology Maven Repository</name>
    			<url>http://repository.prime.com.tr/</url>
    			<layout>default</layout>
    		</repository>
    		<repository>
    			<id>releases</id>
    			<name>Managed Release Repository</name>
    			<url>http://serveur.prive/archiva/repository/releases/</url>
    			<releases>
    				<enabled>true</enabled>
    			</releases>
    			<snapshots>
    				<enabled>false</enabled>
    			</snapshots>
    		</repository>
    	</repositories>
     
    </project>
    Cordialement,
    Nicolas

  2. #2
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    171
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 171
    Par défaut
    En fait ça à l'air de le faire avec tous les projets web. En effet, j'ai créé un autre projet en utilisant l'archetype maven-archetype-webapp. Lorsque je lance mvn package, le war créé contient les sources java et non mes classes compilées.

    Maven n'entraine pas la compilation des classes ?

  3. #3
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    		<resources>
    			<resource>
    				<directory>src/</directory>
    				<excludes>
    					<exclude>tests/</exclude>
    				</excludes>
    			</resource>
    		</resources>
    	</build>
    clairement tu lui dit d'inclure le contenu de src/ dans ton artifact. Et tes .java tu les a déposé ou pour qu'il ne les compile par? Par défaut, le dossier est src/main/java


    PS: l'entrée war-plugin n'apparait pas par défaut avec l'archetype que tu génère, donc ca n'inclue pas les .java, sauf si tu les met ailleurs que dans les répertoires source.

  4. #4
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    171
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 171
    Par défaut
    Ben en fait mon projet est un Dynamic Web Project auquel je greffe maven. Il n'a donc pas la structure d'un projet Maven.

    Mes classes java sont dans le dossier src, à la racine du projet.

    J'ai quelque peu modifié la partie build du pom.xml, mais le problème persiste toujours
    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
     
    <!--  Propriétés de build -->
    	<build>
    		<defaultGoal>package</defaultGoal>
    		<plugins>
     
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-war-plugin</artifactId>
    				<configuration>
    					<!-- Permet a eclipse de se repérer -->
    					<warSourceDirectory>${project.basedir}/WebContent</warSourceDirectory>
    					<webXml>${project.basedir}/WebContent/WEB-INF/web.xml</webXml>
    					<warSourceExcludes>WebContent/WEB-INF/lib/**</warSourceExcludes>
                                            <webResources>
                                                    <resource>
                                                            <directory>WebContent</directory>
                                                    </resource>
                                                    <resource>
                                                            <directory>src</directory>
                                                            <targetPath>WEB-INF/classes</targetPath>
                                                            <excludes>
                                                                    <exclude>**/*.java</exclude>
    								<exclude>tests/</exclude>
    							</excludes>
    						</resource>
    						<resource>
    							<directory>ressources</directory>
    							<targetPath>WEB-INF/classes</targetPath>
    							<filtering>true</filtering>
    							<excludes>
    								<exclude>**/daoBeansTests.xml</exclude>
    								<exclude>**/rmptoolTests.hibernate.cfg.xml</exclude>
    							</excludes>
    						</resource>
    					</webResources>
    				</configuration>
    			</plugin>
     
     
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-compiler-plugin</artifactId>
    				<!-- indiquer à Maven une compilation avec le JDK 1.5  -->
    				<configuration>
    					<source>1.5</source>
    					<target>1.5</target>
    				</configuration>
    			</plugin>
    		</plugins>
    	</build>
    Je joint l'image de l'arborescence de mon projet aussi.
    Images attachées Images attachées  

  5. #5
    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
    puisque tu n'utilise pas les chemins par défaut, tu dois définir dans le build les dossiers que maven doit utiliser.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <build>
        <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
        <testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>
        <outputDirectory>${basedir}/target/classes</outputDirectory>
        <testOutputDirectory>${basedir}/target/test-classes</testOutputDirectory>

  6. #6
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    171
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 171
    Par défaut
    ça ne marche toujours pas.

    Mais même en créant un projet maven, avec l'archétype maven-archetype-webapp, lorsque je génère un war en utilisant mvn package, mon dossier classes de mon archive contient des . class au lieu des .java.

  7. #7
    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
    je déteste mé répéter bêtement, alors tu va faire ça, comme on te l'a déja dit, en mettant les bonne valeurs, bien évidement!

    Citation Envoyé par tchize_ Voir le message
    puisque tu n'utilise pas les chemins par défaut, tu dois définir dans le build les dossiers que maven doit utiliser.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <build>
        <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
        <testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>
        <outputDirectory>${basedir}/target/classes</outputDirectory>
        <testOutputDirectory>${basedir}/target/test-classes</testOutputDirectory>
    Sans ça il n'aura rien à compiler ton maven.

    edit: et ton dossier test va devoir bouger, tu ne peux pas le garder comme un sou dossier du dossier des sources du programme! Faut quand même un minimum de distinction...

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

Discussions similaires

  1. SUM renvoie des décimaux et pas des entiers
    Par senacle dans le forum Requêtes
    Réponses: 4
    Dernier message: 29/06/2018, 16h39
  2. Réponses: 3
    Dernier message: 12/06/2010, 10h16
  3. Sommer des temps en java (non pas des dates)
    Par papse dans le forum Langage
    Réponses: 3
    Dernier message: 16/04/2010, 18h03
  4. Réponses: 3
    Dernier message: 08/03/2007, 10h18
  5. Réponses: 2
    Dernier message: 25/02/2007, 23h56

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