我使用 vaadin-sbt-plugin (https://github.com/Gekkio/sbt-vaadin-plugin) 进行的小部件集编译正在生成以下异常:
> vaadin-compile
[info]
[info] == copy-resources ==
[info] == copy-resources ==
[info]
[info] == vaadin-compile ==
[error] Nov 29, 2011 10:09:35 PM com.vaadin.terminal.gwt.widgetsetutils.ClassPathExplorer getAvailableWidgetSets
[error] Informaþ§es: Widgetsets found from classpath:
[error] com.vaadin.terminal.gwt.DefaultWidgetSet in jar:file:E:/Projetos/smarthome/view/lib/vaadin-6.7.2.jar!/
[error] org.vaadin.vaadinvisualizations.widgetset.VaadinvisualizationApp
licationWidgetset in jar:file:E:/Projetos/smarthome/view/lib_managed/scala_2.9.0-1/compile/visualizationsforvaadin-1.1.2.jar!/
[error] com.invient.vaadin.charts.widgetset.InvientChartsWidgetset in jar:file:E:/Projetos/smarthome/view/lib_managed/scala_2.9.0-1/compile/invient-charts-0.8.5.jar!/
[error]
[error] Nov 29, 2011 10:09:35 PM com.vaadin.terminal.gwt.widgetsetutils.ClassPathExplorer getAvailableWidgetSets
[error] Informaþ§es: Search took 11ms
[error] Nov 29, 2011 10:09:35 PM com.vaadin.tools.WidgetsetCompiler$1 run
[error] Grave: Widgetset compilation failed
[error] java.io.IOException: Could not create directory for the widgetset: file:
E:\Projetos\smarthome\view\lib\vaadin-6.7.2.jar!\com\vaadin\terminal\gwt
[error] at com.vaadin.terminal.gwt.widgetsetutils.WidgetSetBuilder.updateWidgetSet(WidgetSetBuilder.java:79)
[error] at com.vaadin.tools.WidgetsetCompiler$1.run(WidgetsetCompiler.java:76)
[error] at java.lang.Thread.run(Unknown Source)
[error]
[info] Updating GWT module description file...
[info] Widgetset compilation finished
[info] == vaadin-compile ==
[success] Successful.
[info]
[info] Total time: 1 s, completed 29/11/2011 22:09:36
我不知道如何解决这个问题。有人可以帮助我吗?
最佳答案
我遇到了同样的问题,我执行了以下操作来解决它:
- 从项目的类路径中删除任何小部件集描述文件 (.gwt.xml)。
- 在类路径上的任何包中创建一个 customwidgetset.gwt.xml。确保此文件具有唯一的路径,并且不包含在您的 Maven 依赖项包含的任何 jar 中(这是问题中错误的原因)。例如: com/example/vaadinapp/widgetset/customwidgetset.gwt.xml
在此文件中,输入以下内容:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.7.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/1.7.0/distro-source/core/src/gwt-module.dtd"> <module> <inherits name="org.vaadin.anaddon.AnAddonWidgetset" /> <inherits name="org.vaadin.anotheraddon.AnotherAddonWidgetset" /> </module>
在这里您可以声明来自您正在使用的插件的小部件集。
像这样更新 web.xml 文件:
<servlet> <servlet-name>vaadin-frontend</servlet-name> <servlet-class>com.example.vaadinapp.servlet.SpringApplicationServlet</servlet-class> <init-param> <description>Application widgetset</description> <param-name>widgetset</param-name> <param-value>com.example.vaadinapp.widgetset.customwidgetset</param-value> </init-param> </servlet>
- 运行
mvn gwt:compile
关于java - 使用 SBT 和 Intellij 在 Scala 中编译 Widgetset 时出现 IOException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8319572/