2017-12-08 36 views
1

Webアプリケーションで使用されるもののライブラリであるjarファイルを作成する通常のJavaプロジェクトがあります。それは、瓶を作成するSpring Bootスターターです。シンプルなもの。Springブート実行可能なjarと通常のライブラリjarを作成します

私はこれをスタンドアロンの実行可能なjarファイルとして実行できるようにしたかったのです。だから私はCommandLineRunnerを実装標準Application.javaを書いて、私は私のプラグインにこれ​​を追加します。

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

とプレスト、私のjarファイルが実行可能です。

しかし、そのプラグインはディレクトリ構造を変更して、もはや通常のライブラリjarではなく、私のwebアプリケーションがそのクラスを見つけられないようにします。私のpomでプラグインのエントリを削除すると、webappは正常に動作しますが、jarファイルはもはや実行可能ではありません。

両方を行うことはできますか?そしてもしそうなら、どうですか?

+0

正しいアプローチは、共通のものを別のmavenプロジェクトに移動し、Spring BootとあなたのWebアプリケーションの両方で参照することです。あるいは、Mavenアセンブリプラグインを使用して、2番目のjarアーチファクトを生成することもできます。 – tsolakp

答えて

0

Spring Boot 1.4.1以前では可能でしたが、以降はありません。 1.4.1実行可能なjarのディレクトリ構造を変更しました。 1.4.1以降では、jarは実行可能であってもライブラリであっても、両方ではありません。

実行可能ファイルとライブラリの両方に同じjarファイルが必要な場合は、Springブート1.4.0以前に戻す必要があります。

関連する問題