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 :

Utliser Maven pour faire un build jar


Sujet :

Maven Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 181
    Points
    181
    Par défaut Utliser Maven pour faire un build jar
    Je suis débutant sur Maven.

    J'ai un programme java qui utilise du log4j notamment sous Eclipse.
    Dans mon fichier pom.xml, j'appelle un <parent> qui contient toutes les dépendances.

    Quand je fais un Run as "Maven Install", il me builde un jar.

    Je dois modifier le manifest.mf à la main pour lui indiquer ma classe principale (main-class).
    D'ailleurs , comment dire à Maven ma main-classe?

    Maintenant quand je lance le jar, j'ai un message sur Log4j : classNotFound.

    Lors de mon Maven Install, il n'y a pas un moyen de lui dire de mettre toutes les bilbiotheques qu'il faut dans le target de déploiement?

    Merci

  2. #2
    Membre confirmé Avatar de Diablo_22
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2005
    Messages : 498
    Points : 490
    Points
    490
    Par défaut
    Bonjour,

    peux tu poster ton pom et ton pom parent.
    N'oubliez pas la balise

    est ton ami mais quand Google ne trouve pas quelque choses, il demande à Chuck Norris.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    C'est expliqué dans la doc maven du plugin jar

    https://maven.apache.org/plugins/mav...omization.html
    https://maven.apache.org/shared/mave...classpath.html

    Là l'exemple ajoute les jar dans l'entrée classpath, il doivent toujours être présent dans un sous dossier lib/ relatif au jar.

    Pour tout mettre ensemble, tu as aussi l'assembly "jar with dependencies"

    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
          <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>CHOOSE LATEST VERSION HERE</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
     
                </configuration>
                <executions>
                    <execution>
                        <id>assemble-all</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 181
    Points
    181
    Par défaut
    Je pense que tu as raison, cependant, je ne peux pas utiliser ce plugin. Nous avons un pom commun, et dedans il utilise maven-jar-plugin

    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
    <plugin>
    				<artifactId>maven-jar-plugin</artifactId>
    				<configuration>
    					<archive>
    						<manifest>
    							<mainClass>maclasseMain</mainClass>
    							<addClasspath>true</addClasspath>
    							<classpathPrefix>lib/</classpathPrefix>
    							<classpathLayoutType>repository</classpathLayoutType>
    							<!-- <customClasspathLayout> -->
    						</manifest>
    					</archive>
    				</configuration>
    			</plugin>

    J'ai fait mon maven install, et rajouté mes lib dans un répertoire /lib.
    J'ai vu aussi que je pouvais utiliser maven-shade-plugin.

    Je vais demander l'avis de l'intégrateur pour ces 2 plugins.

    Merci de ton aide, j'ai pu avancer dans la réflexion.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    je vois pas le rapport entre le pom commun et le fait de pas pouvoir utiliser un plugin. Le pom parent sert juste à définir les valeurs par défaut, tu peux toujours ajouter ce que tu veux.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 181
    Points
    181
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    je vois pas le rapport entre le pom commun et le fait de pas pouvoir utiliser un plugin. Le pom parent sert juste à définir les valeurs par défaut, tu peux toujours ajouter ce que tu veux.
    Oui. J'ai vu. Merci Tchize. J'y arrive.

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

Discussions similaires

  1. Utilisation de Maven pour faire un projet basique Struts2
    Par batou22003 dans le forum Struts 2
    Réponses: 6
    Dernier message: 10/06/2011, 14h15
  2. Maven est-il le meilleur outil pour faire des builds ?
    Par romaintaz dans le forum Maven
    Réponses: 66
    Dernier message: 31/07/2009, 16h29
  3. [Continuum] [Maven 2] parametrer un build pour seulement un module dans un projet
    Par bassemeco dans le forum Intégration Continue
    Réponses: 3
    Dernier message: 25/04/2008, 11h59
  4. Réponses: 4
    Dernier message: 24/11/2006, 18h01
  5. [JAR] Pb pour faire un jar sous Eclipse
    Par Yannick_from_31 dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 20/04/2006, 22h27

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