2013-05-15 9 views
7

Ho un tema personalizzato per la mia applicazione VAADIN in src/main/webapp/VAADIN/themes/mytheme/con file mytheme.scss e styles.scss. Tutto funziona correttamente quando il parametro di distribuzione vaadin productionMode è impostato su false in web.xml. Quando ho creato il parametro su true, improvvisamente Vaadin non riesce a trovare le risorse per il mio tema e continua a lamentarsi con:VAADIN non trova i temi quando in productionMode

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 

Non ho un directory/WebContent ma/webapp, invece, fin dalla sua un progetto Maven webapp. Ho provato a mettere la cartella Vaadin a:
src/main/risorse
src/main/webapp
src/main/webapp/WEB-INF

ma non funziona nulla per la modalità di produzione. Qualche suggerimento? Grazie in anticipo per l'aiuto.

risposta

12

è necessario aggiungere seguente obiettivo al vostro pom.xml, che compilare i file .scss per CSS file:

<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> 

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

+0

Grazie per la risposta. Funziona con l'obiettivo di esperti. Non ero in grado di google il biglietto. Parole chiave sbagliate, credo. Ad ogni modo odio lo styling in Vaadin :) –

+0

Esiste una soluzione semplice come quella per IVY? Grazie – Hons

+1

In base al ticket esiste ora un nuovo obiettivo "compile-theme" in vaadin-maven-plugin, ma è disabilitato per impostazione predefinita quando si genera un progetto con "mvn archetype: generate". – Boris

3

@Develman già risposto Come risolvere il problema ma un po 'più di spiegazione.

Quando un'applicazione Vaadin è in modalità di sviluppo, esegue automaticamente la compilazione SCSS -> CSS quando viene richiesto styles.css e il file non esiste. Nella modalità di produzione ciò non accade. Se esiste styles.css, indipendentemente dalla modalità, il file viene utilizzato e non esiste SCSS -> compilazione CSS.

+1

Buono a knwo questo. Grazie per il chiarimento. –

1

ho ottenuto questo errore anche-se ho aggiunto obiettivo Maven per pom.xml Infine avuto modo di conoscere la ragione, la sua causa di Io ho abilitato la modalità di produzione di Vaadin su web.xml Così, quando la modalità di produzione su , non sta generando il file styles.css. Quindi è necessario disabilitare la modalità di produzione per abilitare questa compilation SCSS -> CSS.

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