spring-boot-maven-plugin
を使用してRESTサービスをパッケージ化します。mvn clean install
またはmvn clean package
を使用してjarを構築しています。追加された依存関係が見つからない(すべての依存関係を持つファットjarになると予想していました)
<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>
Java -jar myapp.jar -Drun.jvmArguments="-Dspring.profiles.active=qal"
を使用してスプリングブートを実行すると、多くのクラスでClassNotFoundExceptionが発生します。アーティファクトが期待どおりにビルドされなかったことは明らかです。ただし、maven ./mvnw spring-boot:run -Drun.jvmArguments="-Dspring.profiles.active=qal"
を使用してスプリングブートアプリケーションを起動すると、ターゲットフォルダー内のすべての依存関係が検出されるため、正常に動作します。 Java -jarコマンドを使用してアプリを起動できるように、ビルドの問題を修正するにはどうすればよいですか。
編集:それはマルチモジュールのMavenプロジェクトです
間違ったコマンドを使用しているようです。 mvn clean package
はmavenコマンドです。コマンド 'repackage'を使用する必要があります。
Java -jarを使用してコマンドラインから実行できるように、既存のJARおよびWARアーカイブを再パッケージ化します
ここで述べたように https://docs.spring.io/spring-boot/docs/current/maven-plugin/repackage-mojo.html
または、おそらくプラグイン構成の問題です。チェックしたところ: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>
これを使って
<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>