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)
<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
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>
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>