2013-05-15 43 views
7

Tôi có chủ đề tùy chỉnh cho ứng dụng VAADIN của mình trong src/main/webapp/VAADIN/themes/mytheme/với các tệp mytheme.scss và styles.scss. Mọi thứ hoạt động tốt khi thông số triển khai sản xuất vaadin productionMode được đặt thành sai trong web.xml. Khi tôi đặt tham số là true, đột nhiên Vaadin không thể tìm thấy các nguồn lực cho chủ đề của tôi và không ngừng phàn nàn với:VAADIN không thể tìm thấy chủ đề khi đang trong 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 

Tôi không có một/thư mục WebContent nhưng/webapp thay vào đó, kể từ khi một dự án maven webapp của nó. Tôi đã thử đưa thư mục VAADIN tới:
src/main/nguồn
src/main/webapp
src/main/webapp/WEB-INF

nhưng không làm việc cho phương thức sản xuất. Bất kỳ suggenstions? Cảm ơn bạn trước sự giúp đỡ.

Trả lời

12

Bạn cần phải thêm sau mục tiêu để pom.xml của bạn, mà sẽ biên dịch các tập tin .scss để .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> 

Nguồn: http://dev.vaadin.com/ticket/10291

+0

Cảm ơn bạn đã trả lời. Nó hoạt động với mục tiêu maven. Tôi không thể google vé. Từ khóa sai tôi đoán. Dù sao tôi ghét kiểu dáng trong Vaadin :) –

+0

Có một giải pháp đơn giản như thế cho IVY không? Cảm ơn – Hons

+1

Theo vé, một mục tiêu "biên dịch-chủ đề" mới tồn tại trong plugin vaadin-maven, nhưng nó bị vô hiệu hóa theo mặc định khi tạo một dự án với "mvn archetype: generate". – Boris

3

@Develman đã trả lời như thế nào để sửa chữa vấn đề nhưng giải thích thêm một chút.

Khi ứng dụng Vaadin đang ở chế độ phát triển, nó sẽ tự động biên dịch CSS SCSS -> khi styles.css được yêu cầu và tệp không tồn tại. Trong chế độ sản xuất, điều này không xảy ra. Nếu styles.css tồn tại, bất kể chế độ, tập tin được sử dụng và không có SCSS -> biên dịch CSS.

+1

Tốt để thao tác này. Cảm ơn bạn đã làm rõ. –

1

Tôi nhận được lỗi này mặc dù tôi đã thêm mục tiêu maven vào pom.xml Cuối cùng cũng đã biết lý do, Vì tôi đã bật chế độ sản xuất của Vaadin trên web.xml Vì vậy, khi chế độ sản xuất bật , nó không tạo tệp styles.css. Vì vậy, bạn cần vô hiệu hóa chế độ sản xuất để cho phép biên dịch CSS - SCSS này.

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