使用Spring Boot 1.3,在Netbeans

时间:2015-11-23 10:54:11

标签: spring-boot thymeleaf netbeans-8

Spring Boot 1.3引入了spring-boot-devtools来提供与Spring Reloaded类似的功能,以重新加载修改后的类并更新Thymeleaf模板,而无需重新运行您的应用程序。

之前我一直在使用Spring Boot 1.2.7(使用Spring Reloaded),我可以动态修改我的模板而无需重新启动Spring Boot应用程序。

当我修改和保存Java代码/ Thymeleaf模板时,相同的应用程序现在既不重新加载Thymeleaf模板也不重新加载/重新启动应用程序。

我正在使用嵌入在Netbeans IDE中的Netbeans 8.0.2和Maven(3.0.5版)。该应用程序打包为JAR。

在Netbeans中,项目属性 - >构建 - >编译是一个复选框"编译保存"这是勾选的。 我确认这实际上是通过修改.java文件和检查/ target / classes中的时间戳来实现的。

以下是 "Run action" properties for the project in Netbeans:

我的pom.xml中有以下依赖项(包括其他因为不相关而被排除在外):

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
</dependency> 
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

有了这个,我应该准备好了 Spring Boot Blog提到以下内容:

  

&#34;如果包含spring-boot-devtools模块,任何类路径文件更改都将自动触发应用程序重启。&#34;

并在Spring Boot official documentation.

中进行了类似的评论

编辑: 我尝试使用带有版本标签1.2.7.RELEASE的spring-boot-maven-plugin,并在保存模板时在浏览器中显示我的Thymeleaf模板的突然更改。似乎至少Thymeleaf模板的问题不是因为spring-boot-devtools,而是因为spring-bot-maven-plugin。

问题可以分为两部分:

1)如果使用更新版本的spring-boot-maven-plugin,由于某种原因不能重新加载的Thymeleaf模板(1.3.0.RELEASE) 2)应用程序重新加载/重启触发器不会发生,即使/ target / classes中的.class文件在修改和保存相应的.java文件时也会更新。

更新:已验证devtools未加载(主线程名称未重新启动)。 解决2)通过将Netbeans项目属性中的运行项目操作中的执行目标更改为以下内容:

process-classes org.codehaus.mojo:exec-maven-plugin:1.2.1:exec

旧的执行目标是package spring-boot:run。谷歌搜索显示其他人在使用spring-boot:run运行项目时遇到spring-boot-devtools问题。

现在唯一的问题是Thymeleaf模板在保存时不会实时更新。

2 个答案:

答案 0 :(得分:5)

将Netbeans项目属性中的运行项目操作中的执行目标更改为以下内容:

process-classes org.codehaus.mojo:exec-maven-plugin:1.2.1:exec 而不是package spring-boot:run启用Spring Boot Devtools并重新启动按预期工作。

Thymeleaf模板的问题归因于Spring Boot 1.3中的Spring Boot Maven插件不再将src / main / resources直接添加到类路径中。 See release notes for details.

将显式资源目录位置(在我的情况下为src / main / resources)配置为pom.xml解决了Thymeleaf模板无法重新加载的问题:

<build>
   ...
   <resources>
     <resource>
       <directory> src/main/resources </directory>
     </resource>
   </resources>
  ... 
 </build>

答案 1 :(得分:1)

我使用Spring Booth 1.4.2.RELEASE。在我做完以下事情后,LiveReload为我工作:

  • 安装Chrome扩展程序LiveReload
  • addResources添加到spring-boot-maven-plugin maven配置。

档案pom.xml

<build>
    ...
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>${spring-boot.version}</version>
            <configuration>
                <fork>true</fork>
                <addResources>true</addResources>
            </configuration>
        </plugin>
    ...
    </plugins>
    ...
</build>

参考:http://docs.spring.io/spring-boot/docs/current/maven-plugin/usage.html