Spring、JPA、MySQL、Webを使用してアプリケーションを構築しました。私はテンプレートフォルダーに静的ページを通常どおり開発し、それが機能します。
しかし、静的なページで何かを変更すると、変更をリロードできません。次に、pom.xmlを開いて追加しました
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
アプリケーションを再起動しましたが、静的ページに変更を加えても機能しません。
他に何かすることはありますか?
私のPOM.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.engsoftware</groupId>
<artifactId>cobranca</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>Cobranca</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<Java.version>1.8</Java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-Java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-Tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
私はこの記事をフォローしました https://github.com/spring-projects/spring-boot/issues/7479
したがって、devtoolsを機能させるには、以下を追加する必要があります。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>runtime</scope>
</dependency>
その秘密は、オプションのTrueとScopeランタイムを追加することです。
Eclipseのトップメニューで、「プロジェクト」->「自動的にビルド」をオンにしますか?
この質問はすでに回答されていますが、私にとっては、受け入れられた回答や他の回答が示すとおりには機能しませんでした。
私はdevtoolsを次のように動作させています:
1)以下のようにdevtools依存関係を使用します:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>runtime</scope>
</dependency>
2)Spring Mavenキャッシュを削除すると、Linuxでは次のようになります。
rm -rf ~/.m2/repository/org/springframework/*
3)Eclipseに戻り、Alt + F5を押してプロジェクトをクリーンアップし、Mavenからキャッシュへのすべての依存関係を再ダウンロードします。
重要なのは、optional
フラグをtrue
に設定して、開発ツールの依存関係に[〜#〜] and [〜#〜] Mavenキャッシュを消去することです。
これが誰かに役立つことを願っています。
Spring Boot docsによると:
Spring-boot-devtoolsを使用するアプリケーションは、クラスパス上のファイルが変更されるたびに自動的に再起動します。これは、IDEで作業する場合に便利な機能です。コードの変更に対して非常に高速なフィードバックループを提供します。デフォルトでは、フォルダーを指すクラスパスのすべてのエントリの変更が監視されます。静的アセットやビューテンプレートなどの特定のリソースは、アプリケーションを再起動する必要がないことに注意してください。
テンプレートと静的アセットを再起動する必要はありません。ほとんどの場合、ブラウザはテンプレートをキャッシュし、新しいテンプレートを要求する代わりに、キャッシュされたバージョンを使用しています。ブラウザのキャッシュをクリアすると、更新されたテンプレートが表示されます。
編集:
使用しているテンプレートテクノロジーによっては、テンプレートキャッシュを無効にするためにプロパティファイルにプロパティを設定する必要があります
# Thymeleaf
spring.thymeleaf.cache = false
#FreeMarker
spring.freemarker.cache = false
#Groovy
spring.groovy.template.cache = false
これでうまくいきました。 application.propertiesファイルに以下の行を追加します。
spring.devtools.restart.enabled=true
上記の回答を試しても問題が解決しない場合は、Eclipseでプロジェクトのビルドを自動的に有効にしてみてください。その後はうまくいきました。