2013-05-15 5 views
7

Ich habe ein eigenes Thema für meine VAADIN-Anwendung in src/main/webapp/VAADIN/themes/mytheme/mit den Dateien mytheme.scss und styles.scss. Alles funktioniert gut, wenn der Implementierungsparameter vaadin productionMode in web.xml auf false gesetzt ist. Wenn ich die Parameter auf true gesetzt, plötzlich Vaadin kann nicht über die Ressourcen für mein Thema finden und immer wieder beschwert mit:VAADIN kann im productionMode keine Themen finden.

Requested resource [/VAADIN/themes/mytheme/styles.css] not found from filesystem or through class loader. Add widgetset and/or theme JAR to your classpath or add files to WebContent/VAADIN folder 

Ich habe nicht ein/WebContent Verzeichnis aber/Webapp statt, da sie ein Maven Webapp Projekt. Ich versuchte, den Vaadin Ordner zu setzen:
src/main/resources
src/main/webapp
src/main/webapp/WEB-INF

aber nichts für den Produktionsmodus arbeitet. Irgendwelche Suggestionen? Vielen Dank im Voraus für Hilfe.

Antwort

12

Sie müssen folgende Ziel zu Ihrem pom.xml hinzufügen, die die .scss Dateien kompiliert Dateien .css:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>exec-maven-plugin</artifactId> 
    <version>1.2.1</version> 
    <executions> 
     <execution> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>java</goal> 
      </goals> 
      <configuration> 
       <classpathScope>compile</classpathScope> 
       <mainClass>com.vaadin.sass.SassCompiler</mainClass> 
       <arguments> 
        <argument>src/main/webapp/VAADIN/themes/heijunka/styles.scss</argument> 
        <argument>src/main/webapp/VAADIN/themes/heijunka/styles.css</argument> 
       </arguments> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Quelle: http://dev.vaadin.com/ticket/10291

+0

Vielen Dank für die Antwort. Es funktioniert mit dem Maven-Ziel. Ich konnte das Ticket nicht googeln. Falsche Schlüsselwörter, denke ich. Wie auch immer, ich hasse Styling in Vaadin :) –

+0

Gibt es eine einfache Lösung wie das für IVY auch? Danke – Hons

+1

Laut dem Ticket existiert jetzt ein neues "compile-theme" -Ziel in vaadin-maven-plugin, aber es ist standardmäßig deaktiviert, wenn ein Projekt mit "mvn archetype: generate" generiert wird. – Boris

3

@Develman bereits beantwortet, wie das beheben Problem, aber ein bisschen mehr Erklärung.

Wenn sich eine Vaadin-Anwendung im Entwicklungsmodus befindet, führt sie die SCSS -> CSS-Kompilierung automatisch aus, wenn die Datei styles.css angefordert wird und die Datei nicht existiert. Im Produktionsmodus passiert das nicht. Wenn styles.css existiert, unabhängig vom Modus, wird die Datei verwendet und es gibt keine SCSS -> CSS-Kompilierung.

+1

Gut zu wissen. Danke für die Klarstellung. –

1

ich diesen Fehler bekam sogar, wenn auch ich Maven Ziel hinzugefügt haben pom.xml Schließlich bekam den Grund wissen, Its wegen ich habe Also, wenn die Produktion Produktionsmodus von Vaadin auf web.xml aktivierten Modus auf , es erzeugt keine styles.css Datei. Sie müssen also den Produktionsmodus deaktivieren, um diese SCSS -> CSS-Kompilierung zu aktivieren.

<context-param> 
    <description>Vaadin production mode</description> 
    <param-name>productionMode</param-name> 
    <param-value>false</param-value> 
</context-param>