web-dev-qa-db-fra.com

spring-boot-maven-plugin ne crée pas de pot de graisse

J'utilise spring-boot-maven-plugin pour emballer mon service REST. Je construis le pot en utilisant mvn clean install ou mvn clean package. Après avoir décompilé le pot, je ne trouve aucune des dépendances ajoutées (je m'attendais à ce que ce soit un gros pot avec toutes les dépendances)

 enter image description here

 <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>1.5.9.RELEASE</version>
    <executions>
        <execution>
           <phase>install</phase>
           <goals>
              <goal>repackage</goal>
              <goal>build-info</goal>
           </goals>
        </execution>
    </executions>
    <configuration>
        <executable>true</executable>
        <finalName>myapp</finalName>
        <includeSystemScope>true</includeSystemScope>
    </configuration>
</plugin>

Lorsque j'exécute le démarrage printanier en utilisant Java -jar myapp.jar -Drun.jvmArguments="-Dspring.profiles.active=qal", j'obtiens une exception ClassNotFoundException pour la plupart des classes. Il est clair que l'artefact n'a pas été construit comme prévu. Cependant, si je lance l'application de démarrage printanier à l'aide de maven ./mvnw spring-boot:run -Drun.jvmArguments="-Dspring.profiles.active=qal" je suppose, toutes les dépendances du dossier cible fonctionnent donc correctement. Comment puis-je résoudre le problème de génération afin de pouvoir démarrer une application à l'aide de la commande Java -jar. 

EDIT: C'est un projet multi-module Maven

7
Pankaj

il semble que vous utilisiez une mauvaise commande. mvn clean package is maven, vous devez utiliser la commande 'reconditionner', elle a été utilisée pour

Reconditionne les archives JAR et WAR existantes afin qu'elles puissent être exécutées depuis la ligne de commande en utilisant Java -jar

comme indiqué ici https://docs.spring.io/spring-boot/docs/current/maven-plugin/repackage-mojo.html

Ou probablement c'est un problème de configuration de plugin. Je viens de vérifier: cela fonctionne avec spring-boot-maven-plugin-2.0.0.RELEASE 

<plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                        <configuration>
                            <classifier>exec</classifier>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
4
krund

Utilisez celui-ci

<plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <executions>
    <execution>
      <goals>
        <goal>repackage</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <mainClass>${start-class}</mainClass>
    <executable>true</executable>
    <fork>true</fork>
    <!-- Enable the line below to have remote debugging of your application on port 5005
         <jvmArguments>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005</jvmArguments>
     -->
  </configuration>
</plugin>
0
test1