Maison  >  Article  >  Java  >  Comment puis-je résoudre l'erreur \"NoClassDefFoundError\" dans Maven lors de l'exécution à partir de la ligne de commande ?

Comment puis-je résoudre l'erreur \"NoClassDefFoundError\" dans Maven lors de l'exécution à partir de la ligne de commande ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-27 04:01:02820parcourir

How can I resolve the

Résolution des dépendances via le plugin Shade pour NoClassDefFoundError

Dans une première expérience avec Maven, des incohérences entre Eclipse et l'utilisation de la ligne de commande peuvent survenir en raison de gestion des dépendances. Malgré la création réussie du projet Maven et l'ajout de dépendances dans Eclipse, l'exécution du projet via la ligne de commande peut entraîner une erreur NoClassDefFoundError.

Par défaut, Maven emballe les dépendances séparément et ne les inclut pas dans le fichier JAR compilé. Cette omission entraîne l'échec de la machine virtuelle Java lors de la tentative de localisation des classes de bibliothèque pendant l'exécution.

Au lieu d'ajouter manuellement des bibliothèques au chemin de classe, le maven-shade-plugin fournit une solution plus efficace. Il crée un "uber-JAR" qui combine les classes d'application avec le code de bibliothèque requis.

Pour implémenter cela, ajoutez la configuration de plugin suivante à votre POM :

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.5.2</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Après avoir ajouté cette configuration, réexécutez les commandes suivantes :

$ mvn package
$ java -cp target/bil138_4-0.0.1-SNAPSHOT.jar tr.edu.hacettepe.cs.b21127113.bil138_4.App

Pour les options de configuration avancées, telles que la spécification des JAR inclus ou d'un fichier JAR exécutable, reportez-vous à la section « Exemples » sur le site Web maven-shade-plugin.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn