java - 使用 SBT 和 Intellij 在 Scala 中编译 Widgetset 时出现 IOException

标签 java scala intellij-idea sbt vaadin

我使用 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

我不知道如何解决这个问题。有人可以帮助我吗?

最佳答案

我遇到了同样的问题,我执行了以下操作来解决它:

  1. 从项目的类路径中删除任何小部件集描述文件 (.gwt.xml)。
  2. 在类路径上的任何包中创建一个 customwidgetset.gwt.xml。确保此文件具有唯一的路径,并且不包含在您的 Maven 依赖项包含的任何 jar 中(这是问题中错误的原因)。例如: com/example/vaadinapp/widgetset/customwidgetset.gwt.xml
  3. 在此文件中,输入以下内容:

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

    在这里您可以声明来自您正在使用的插件的小部件集。

  4. 像这样更新 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>
    
  5. 运行mvn gwt:compile

关于java - 使用 SBT 和 Intellij 在 Scala 中编译 Widgetset 时出现 IOException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8319572/

相关文章:

java - JPA 和 JDO 规范有什么区别?

java - 从 intellij 外部配置数据库属性

maven - 在 Tomcat 上阅读电子邮件 : ClassNotFoundException: javax. mail.MessagingException

Intellij IDEA 中的 Maven 导入在大型项目中内存不足

scala - Scala 中 AOP 风格的 Mixin 组合

java - 创建后如何调用流程操作?

Java Swing CardLayout : get componente associated to a String

java - 选中/取消选中 CheckboxCell,单击一行 - GWT

scala - 如何有效地多次运行 Scala 程序?

scala - 从 SparkSession 检索 SparkContext