2013-08-13 21 views
5

tôi đã thiết lập dự án GWT bằng Gradle làm quản lý xây dựng và mọi thứ đều ổn.
Tôi có thể triển khai dự án của mình vào tomcat cục bộ của mình trong nhật thực và ứng dụng chạy như dự định. Nhưng nếu tôi khởi động DevMode và thay đổi thứ gì đó trong tài nguyên css của tôi (bị ràng buộc là các lớp CssResource với một chú thích @Source), thì DevTode GWT không bắt được nó và các thay đổi css không được tính đến. Tôi có thiếu gì đó không? Tôi hy vọng DevMode sẽ phát hiện các thay đổi trong các tệp .css trong quá trình phát triển mà không cần phải chạy một biên dịch gwt nữa.GWT DevMode không tải lại các thay đổi trên các tệp css

Dưới đây là một ví dụ về cách tôi đang sử dụng các nguồn lực css:

public interface XOFooterPanelResource extends FooterPanelResource, ClientBundle { 
    @Override 
    @Source("XOFooterPanel.css") 
    XOFooterPanelStyle style(); 

    @Override 
    @ImageOptions(repeatStyle = RepeatStyle.Horizontal) 
    ImageResource footerPanelBackground(); 

    @Override 
    @ImageOptions(repeatStyle = RepeatStyle.Horizontal) 
    ImageResource footerPanelBackgroundEndUser(); 

    @Override 
    @Source("footerDelimiter.jpg") 
    ImageResource footerDelimiter(); 
} 

public interface XOFooterPanelStyle extends FooterPanelStyle, CssResource { 

} 

Như bạn thấy tôi có giao diện XOFooterPanelStyle của tôi kéo dài CssResource. Nó được sử dụng trong XOFooterPanelResource - nó mở rộng ClientBundle - bằng cách sử dụng chú thích @Source với tên của tệp CSS của tôi.

Và đây là một phần của gradle xây dựng tập tin của tôi mà là trách nhiệm bắt đầu devmode:

javaexec { 
     main = 'com.google.gwt.dev.DevMode' 

     jvmArgs = ['-Xmx2048M', '-XX:MaxPermSize=1024M'] 

     classpath { 
      [ 
       sourceSets.main.java.srcDirs, 
       // Java source 
       sourceSets.main.output.resourcesDir, 
       // Generated resources 
       sourceSets.main.output.classesDir, 
       // Generated classes 
       sourceSets.main.compileClasspath  // Deps 
      ] 
     } 

     args = [ 
       '-startupUrl', 
       'myapp/index.html', 
       '-noserver', 
       '-war', 
       'build/devmode', 
       '-gen', 
       'gen' 
      ] 
     ext.gwtModules.each { 
      args += it 
     } 
    } 

Như đã đề cập trước khi tôi đang sử dụng tomcat bên trong nhật thực để chạy các ứng dụng, do đó lựa chọn -noserver được thiết lập .

Trả lời

0

Trừ khi bạn đang trực tiếp thay đổi tệp css mà tomcat đang tham chiếu, bạn sẽ không thấy thay đổi trong chế độ nhà phát triển. Tôi tin rằng khi bạn triển khai thông qua tomcat trong nhật thực, mã của bạn không được tham chiếu trực tiếp từ không gian làm việc dự án eclipse, một bản sao được chuyển đến thư mục webapps tomcat.

Tôi không chắc chắn cách thức tiêu chuẩn xung quanh đây là gì. Tôi cảm thấy như có phải là một tùy chọn để làm mới tài nguyên tĩnh cho cá thể tomcat từ nhật thực, nhưng tôi đã không nhìn vào nó.

Dưới đây là hai cách tôi đã nhận được xung quanh vấn đề này khi tôi cần thiết để:

1) Bạn có thể đặt mã CSS trong file ui.xml của bạn, và điều đó cần được nhặt bởi devmode.
Tutorial on how to add css to your ui.xml

2) Bạn cũng có thể sửa đổi tệp css trong thư mục webapps trực tiếp, sau đó di chuyển bất kỳ thay đổi nào bạn đã quay lại phiên bản vùng làm việc.

+0

Là một cách sử dụng workaround maven-resources-plugin sao chép tài nguyên, src/main/webapp $ {project.build.directory}/gwt-webapp. https://maven.apache.org/plugins/maven-resources-plugin/examples/copy-resources.html –

Các vấn đề liên quan