2014-09-29 70 views
2

我通過Maven使用Spring Boot和Thymeleaf。我似乎無法讓Netbeans在進行更改時自動重新部署我的任何Thymeleaf模板文件。爲了查看我需要做的全面清理/構建/運行的更改。這需要太長時間。Netbeans 8不會重新加載靜態Thymeleaf文件

模板在src/main/resources/templates。我在src/main/resources /中有一個application.properties文件,其中spring.thymeleaf.cache=falsespring.template.cache=false

我已經「在保存時編譯」,「複製資源的節約」和「部署上節省」在項目設置中開啓。

我的maven版本生成了一個NetBeans部署到Tomcat的戰爭文件,我使用註釋@EnableAutoConfiguration

Netbeans does熱部署更改爲Java類,但不是src/main/resources /中的任何靜態文件。

軟件使用:

  • 的Mac OS X 10.9.4
  • 的Java 1.8
  • Netbeans的8.0.1
  • 的Tomcat 8.0.12
  • 春季啓動1.1.7
  • Thymeleaf 2.1.3(通過Spring Boot)

任何指導,非常感謝。

+0

是資源根目錄中打開過濾的文件?這些不是由netbeans afaik複製的。 – mkleint 2014-09-29 21:35:55

+0

我在一段時間內沒有使用過Netbeans,但是可以肯定的是,你只是在運行或調試項目? – geoand 2014-09-30 05:54:10

+0

@mkleint - 你打開過濾器是什麼意思?靜態文件位於src/main/resources中。 – Hamish 2014-09-30 08:47:59

回答

1

一直在尋找一個解決方案,我的Eclipse + thymeleaf +衝刺啓動重裝模板動態的日誌,而....

最後我發現了這個問題,在這裏和spring.thymeleaf.cache =假和彈性。 template.cache = false解決了我的問題。

+0

我剛剛花了30分鐘來解決同樣的問題......它看起來有些老的博客指向屬性'spring.template.cache'。即使在spring引導[github](https://github.com/spring-projects/spring-boot/issues/34)網站上有一個*問題*:S – Augusto 2015-03-21 20:47:32

4

的辦法是尋找到配置Thymeleaf的FileTemplateResolver

要做到這一點與Spring啓動,確定實現ITemplateResolver接口的名稱defaultTemplateResolver,如果存在的話,春天啓動將採取它,而不是其默認豆,這裏是如何將完成,並假設你有組件掃描有效,因此該配置類將被自動拾取:

@Configuration 
public class ThymeleafConfiguration { 
    @Bean 
    public ITemplateResolver defaultTemplateResolver() { 
    TemplateResolver resolver = new FileTemplateResolver(); 
    resolver.setSuffix(".html"); 
    resolver.setPrefix("path/to/your/templates"); 
    resolver.setTemplateMode("HTML5"); 
    resolver.setCharacterEncoding("UTF-8"); 
    resolver.setCacheable(false); 
    return resolver; 
    } 
} 

prefix應該是一個相對路徑,當添加到您的運行時的工作目錄(CWD) ,woul d解析爲模板目錄。如果您不確定,請將其設置爲完整的絕對路徑,但上面的bean沒有任何意義。由於將spring.thymeleaf.prefix屬性設置爲絕對路徑可能具有相同的效果。

0

爲了解決這個問題,pom中的spring-boot-maven-plugin。XML應該看起來是這樣的:

<plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
      <dependencies> 
       <dependency> 
        <groupId>org.springframework</groupId> 
        <artifactId>springloaded</artifactId> 
        <version>1.2.0.RELEASE</version> 
       </dependency> 
      </dependencies> 
     </plugin> 

這添加到您的應用程序屬性:

spring.thymeleaf.cache=false 

它通常工作到Spring豆了。

0

只是說這個使用Tomcat的外部實例很好地工作對我來說:

  • 運行Tomcat與JRebel的或彈簧加載javaagent作爲VM選項
  • 關閉「在保存時編譯」,「複製資源節約」和‘關於部署保存’
  • 添加Netbeans中的自定義操作執行編譯目標
  • 運行,當你想看到一個更新

http://wiki.netbeans.org/MavenBestPractices#Binding_Maven_goals_to_IDE_actions

https://github.com/spring-projects/spring-loaded

https://zeroturnaround.com/software/jrebel/quickstart/standalone/

或者你也可以使用帶有彈簧引導Maven的插件和彈簧加載,而不是嵌入式的Tomcat,那麼你就不需要編譯動作:

https://docs.spring.io/spring-boot/docs/current/reference/html/howto-hotswapping.html

0

除了將Thymeleaf視圖設置爲不可緩存的ie即可。 spring.thymeleaf.cache=false在application.properties, 儘量明確定義資源目錄在你的pom.xml:

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

我有這個問題了。我發現Netbeans的重裝automaticaly網頁是在

/src目錄/主/ web應用/

你必須移動從/ src目錄/主/資源/模板到這個目錄下的所有模板。

你也需要改變彈簧引導屬性上application.properties文件:

spring.thymeleaf.prefix =模板/

這對我來說

0

我有這個工作Netbeans 8.0.2和Windows上的相同問題。我正在構建一個要部署到Tomcat的WAR,但我想試用Spring Boot。看起來新版本的Netbeans可以通過Spring Boot插件或使用Eclipse來解決這個問題。把IDE轉換成像這樣的小東西似乎很難。我嘗試了所有我能找到的建議;彈簧加載,緩存屬性,擴展TemplateResolver ...我無法讓他們任何工作。我終於偶然發現了this博客,並按照這些說明解決了我的問題。