4

我最近发现了Yeoman,这是一个极大地促进JS 依赖和构建生命周期管理的工具。

此外,我使用Maven作为我的Java依赖项和构建工具。我实际上是在寻求整合这两种工具,以便两全其美。

似乎社区已经为Maven/Yeoman与各种文章的集成付出了很多努力,例如这篇文章:http ://addyosmani.com/blog/making-maven-grunt/以及yeoman-maven 插件https: //github.com/trecloux/yeoman-maven-plugin

最后,我使用Thymeleaf作为我的 Spring-MVC 模板解决方案。

假设以下目录布局(参见上面的 yeoman-maven-plugin):

pom.xml
 - src
   - main
     - java
     - webapp
     - …
   - test
     - ..
 - yo
   package.json
   component.json
   Gruntfile.js
   - app
     index.html
     ...
   - test
     ...
   - dist
     ...

我的问题是我的 Thymeleaf 模板应该放在哪里

  1. 目录下yo/app?(它们随后将被 maven 复制到适当的目录中)
  2. 直接在src/main/webapp/WEB-INF/templates目录下?

例如,在AngularJS应用程序的情况下,我无法弄清楚的是,模板/页面(包括服务器端内容)何时以及如何与 servlet 容器交互,因为 Yeoman 假设它们位于其app目录下......

4

1 回答 1

2

如果您使用SpringThymeleaf作为模板引擎,我假设您有类似的东西

  <bean id="templateResolver"
        class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
    <property name="prefix" value="/WEB-INF/templates/" />
    <property name="suffix" value=".html" />
    <property name="templateMode" value="HTML5" />
  </bean>

  <bean id="templateEngine"
        class="org.thymeleaf.spring3.SpringTemplateEngine">
    <property name="templateResolver" ref="templateResolver" />
  </bean>

  <bean class="org.thymeleaf.spring3.view.ThymeleafViewResolver">
    <property name="templateEngine" ref="templateEngine" />
  </bean>   

换句话说,您的模板应该驻留在ServletContextTemplateResolver属性中指定的文件夹中prefix。在上面的例子中,就是/WEB-INF/templates. 因此,这些应该在/src/main/webapp/WEB-INF/templates.

如果您不使用 aServletContextTemplateResolver而是使用 a ClassLoaderTemplateResolver,则可以将它们放在应用程序类路径中的任何位置并在该 bean 的属性中指定它。您还FileTemplateResolver可以在其中指定文件系统上任何位置的绝对路径。

使用 Eclipse(maven 插件)构建应用程序时,具有文件夹

/src
    /main
        /webapp
            /WEB-INF
                /templates
                    /some-template.html
            /index.html
        /java
            /com
                /yourcompany
                    /Main.java
        /resources
            /some-properties.properties

maven 将生成以下内容

/WEB-INF
    /templates
         /some-template.html
    /index.html
/classes 
    /com
        /yourcompany
             /Main.class
    /some-properties.properties

作为扩展.war并将其提供给您的 servlet 容器,例如。雄猫。

于 2013-09-15T12:44:07.690 回答