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 :

Intégrer des classes d'autre projets dans son JAR


Sujet :

Maven Java

  1. #1
    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 : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut Intégrer des classes d'autre projets dans son JAR
    Bonjour,

    Mon projet dispose de 3 sous-modules: A, B et C.

    Ce que j'aimerais, c'est que le JAR créé pour le projet C contiennent non seulement les classes compilées depuis les sources de C (normal quoi), mais également certaines classes compilées des projets A et B.

    Comment puis-je procéder pour obtenir ce C.jar ? Je pense m'orienter vers le plugin assembly qui devrait réussir à me faire cela, mais j'avoue ne pas trop savoir comment le configurer...

    Une idée ?
    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

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Points : 1 524
    Points
    1 524
    Par défaut
    Comme tu ne veux que certaines classes (curieux, mais je ne connais pas le use-case), il va te falloir plus que le plugin assembly.

    1- avec le plugin antrun, tu décompresses tes jar A et B
    2- avec le plugin assembly, tu assembles ton jar C en incluant/excluant les classes que tu souhaites des jars A et B grâce au fileset du descripteur d'assembly

  3. #3
    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 : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Citation Envoyé par evenisse Voir le message
    curieux, mais je ne connais pas le use-case
    Fais comme moi : ne cherche pas à comprendre Moi on me demande juste de créer les bases de la librairie (en gros la configurer pour Maven 2), je cherche pas plus loin... C'est trop compliqué des fois !

    Citation Envoyé par evenisse Voir le message
    il va te falloir plus que le plugin assembly.
    Mouais, ça me parait un peu pas glop du coup.
    Je me disais est-ce que ce serait pas possible de lister les fichiers Java à compiler ou bien les classes à packager en les faisant pointer vers le projet A / B ?
    Par exemple en lui disant d'aller chercher la source Java sur ../A/src/main/java/ma/compagnie/Bidule.java ?

    (oui, je pense que je vais le tester directement, ce sera plus simple)
    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

  4. #4
    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 : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Mouais, finalement je doute de la faisabilité de ma méthode...
    En faisant cela :

    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
     
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.5</source>
                        <target>1.5</target>
                        <includes>
                            <include>${basedir}/../monProjetA/src/main/java/com/ma/boite/bidule/MaClasse.java</include>
                        </includes>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    Java ne semble pas prendre en compte MaClasse.java pour compiler...
    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

  5. #5
    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 : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    De même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.1</version>
                    <configuration>
                        <includes>
                            <include>${basedir}/../monProjetA/target/com/ma/boite/bidule/MaClasse.class</include>
                        </includes>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    Le plugin JAR n'ajoute pas du tout ma classe dans mon package JAR...
    Je comprends pas bien, c'est quoi l'intérêt de ces paramètres si ni le plugin Compiler ni le plugin JAR n'en tiennent compte ??
    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

  6. #6
    Membre confirmé

    Inscrit en
    Septembre 2006
    Messages
    466
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 466
    Points : 515
    Points
    515
    Par défaut
    Bonjour,

    Effectivement, le problème vient plus de la problématique qui est un peu bancale. Pouquoi ne pas faire un module commun dans ce cas, par exemple.

    Sinon, je me pencherai plus sur le plugin dependency avec le goal unpack (en jouant sur les include/exclude). Ce plugin est vraiment très utile.

    Rémy

  7. #7
    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 : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Bon, en effet avec dependency, je pourrais toujours essayer de faire quelque chose.
    J'avoue que je n'ai pas vraiment eu envie de tester, j'ai donc simplement laissé faire un script ANT qui se charge de copier les fichiers classes (et XML) des autres projets dans le target/classes de mon projet C.
    Maven se chargeant bien sûr d'appeler Ant via le plugin Antrun...

    C'est pas ultra propre (la problèmatique non plus ) mais ça a le mérite de fonctionner !

    Merci
    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

  8. #8
    Membre confirmé

    Inscrit en
    Septembre 2006
    Messages
    466
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 466
    Points : 515
    Points
    515
    Par défaut
    Oui bien entendu.

    J'ai déjà testé le goal unpack (sans exclude/include) et cela fonctionne très bien. Ce ne prend pas longtemps à mettre en place et c'est tout de même plus robuste (pas besoin de chemin relatif). A tout de voir, suivant tes priorités.

    Rémy

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/04/2015, 23h02
  2. Réponses: 2
    Dernier message: 18/02/2014, 14h13
  3. Intégrer des fichiers .java non compilés dans un autre programme
    Par getrude dans le forum EDI et Outils pour Java
    Réponses: 18
    Dernier message: 20/04/2012, 16h59
  4. [Liferay] Intégrer des classes dans Liferay et les invoquer dans Velocity
    Par ridan dans le forum Portails
    Réponses: 0
    Dernier message: 20/09/2010, 11h58
  5. Réponses: 4
    Dernier message: 05/05/2006, 14h21

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