Maison >Java >javaDidacticiel >Comment utiliser le package maven pour spécifier mainClass dans Springboot

Comment utiliser le package maven pour spécifier mainClass dans Springboot

WBOY
WBOYavant
2023-05-23 19:55:112001parcourir

Utilisez l'emballage maven pour spécifier mainClass

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>com.xxx.XxxApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

Erreurs et raisons de l'emballage SpringBoot Maven

1.org.springframework.boot:spring-boot-maven-plugin:2.2.1.RELEASE:repackage failed: Impossible de trouver la classe principale

2 .Impossible de trouver la classe principale La raison du problème

Si vous utilisez le plug-in d'emballage SpringBoot comme suit

<build>
    <plugins>
         <plugin>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
     </plugins>
</build>

    Si vous utilisez ce plug-in d'emballage, alors nous devons avoir une classe annotée avec @SpringBootApplication, sinon, il sera empaqueté. Parfois, il signalera l'échec du reconditionnement : impossible de trouver la classe principale.
  • Si l'empaquetage de notre projet n'est qu'une boîte à outils ordinaire, alors il n'est pas nécessaire d'ajouter des plug-ins d'empaquetage. Maven utilise la méthode par défaut pour l'empaqueter pour nous sans configuration (vous pouvez vérifier en ligne pour en savoir plus sur Maven par défaut. configuration de la méthode, il en existe de nombreuses en ligne).
  • Si notre projet est construit de manière à construire plusieurs niveaux (multi-modules), il s'agit simplement d'un module ordinaire lors de l'empaquetage, mais le repackage a échoué : l'erreur Impossible de trouver la classe principale est toujours signalée. nous vérifierons le parent du module si le projet a ajouté le plug-in d'empaquetage SpringBoot, car le plug-in d'empaquetage sera également hérité. Par conséquent, il est recommandé de ne pas ajouter directement le plug-in d'empaquetage SpringBoot au projet parent pour des raisons de commodité. Au lieu de cela, le module doit être empaqueté en tant que projet SpringBoot, puis le plug-in d'empaquetage SpringBoot est ajouté.
  • Concernant la méthode d'empaquetage par défaut de maven (comme indiqué ci-dessous), le package est empaqueté en mode jar, il n'est donc pas nécessaire de configurer pom.xml, à moins que nous ne le conditionnions simplement en tant que pom, nous pouvons configurer pom< ;/packaging> , sinon il n'est pas nécessaire de configurer. Bien entendu, le niveau supérieur du multi-module doit être la méthode d'emballage pom.

Comment utiliser le package maven pour spécifier mainClass dans SpringbootUn projet a plusieurs main.classes, ce qui empêche Maven de savoir laquelle utiliser comme entrée principale lors de l'emballage. Ici, nous devons définir

<build>
 <plugins>
   <plugin>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-maven-plugin</artifactId>
     <configuration>
      	<mainClass>com.demo.springboot.DemoSbApplication</mainClass>
     </configuration>
   </plugin>
 </plugins>
</build>

La cause du problème de symbole introuvable

. Cette raison est généralement due au fait que lors de l'empaquetage, le projet empaqueté est un package jar et fait référence à d'autres modules.

Les autres modules ne sont pas emballés dans un pot Pour Springboot, configurez-le simplement

. Remarque : Cela peut entraîner un problème Impossible de trouver la classe principale.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer