LinuxでIntelliJ 13.1を使用していて、基本的なREST例に従ってアプリケーションを作成しようとします http://spring.io/guides/gs/spring-boot/
IntelliJ内からターゲットbootRunを実行すると、統合されたTomcatサーバーが起動し、すべてが正常に動作します。
10:09:35: Executing external task 'bootRun'...
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:findMainClass
:bootRun
ただし、実行を停止しても、gradleタスクには影響しません。
10:11:40: External task execution finished 'bootRun'.
構成されたポートでTomcatインスタンスに引き続きアクセスできます。 IntelliJを閉じるだけでプロセスが破壊されます。
私はこのトピックを検索しましたが、合理的な答えは見つかりませんでした。なのかしら
IntelliJの問題であると確信しています。
IntelliJのGradleインテグレーションからbootRun
を実行してから[停止]を押すと、アプリケーションは前述のとおり実行を続けます。
ただし、コマンドラインを使用してgradle bootRun
そして次に Cntrl+C、アプリケーションは問題なく停止します。
私のセットアップはWindows 7、IntelliJ 13.1.3、Gradle 1.12、Spring Boot 1.1.0.M2であることに注意してください。
アプリケーションを簡単にデバッグできるようにする必要がある場合は、main
メソッドを持つJava(またはGroovy)クラスを実行するだけです。それはSpring Bootアプリケーションを実行する最も簡単な方法です!そのためのSpring Bootへの賞賛!!!
もちろん、すべてのテストの実行やパッケージ化されたアプリケーションの作成などのタスクに引き続きGradleを使用できます。
私はこの回答がすでに回答されていることを知っていますが、これはGoogleで検索するときの最初のトピックであるため、私が行った代替案を共有することを考えましたが、読んだ他のトピックでは見つかりませんでした。
このterminate
の主な問題は、常にクラスで何かを変更し、サーバーを再起動する必要があり、失敗するため、サーバーを_stop/start
_する必要があることでした。
これを回避するには、 spring-boot-devtools を使用します。基本的に:
Spring-boot-devtoolsを使用するアプリケーションは、クラスパス上のファイルが変更されるたびに自動的に再起動します。
唯一の問題は、Intellijでは_Build > Make Project
_をクリックした場合にのみmakes
プロジェクトになるため、自動的にビルドするように設定するか、make
をクリックすることを忘れないでください。
使用するには、依存関係を_build.gradle / pom.xml
_に追加するだけです:compile('org.springframework.boot:spring-boot-devtools')
これは開発に非常に役立つことがわかりました。
MacでIntelliJを使用していますが、Springブートアプリケーションを実行すると同じ問題が発生しました。ターミナルでアプリを実行し、CTRL + Zを使用すると、ターミナルでアプリの実行が実行されます。しかし、同じ端末で再度アプリを実行すると、ポート8080が使用中であるというエラーが表示されます。ターミナルセッションを閉じるオプションを試してみました(右クリック->選択->セッションを閉じる)。これでターミナルが閉じます。ターミナルオプションをもう一度クリックしてアプリを実行すると、スムーズに実行されました。