【问题标题】:IOException in Widgetset compilation in Scala with SBT and Intellij使用 SBT 和 Intellij 在 Scala 中编译 Widgetset 中的 IOException
【发布时间】:2011-11-30 00:17:43
【问题描述】:

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

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

【问题讨论】:

  • 你是在 Windows 上运行这个吗?
  • 那么路径名可能存在根本问题——我看到vaadin-6.7.2.jar!。我不知道! 来自哪里,也不知道它是否应该存在,但我敢打赌它在 Windows 上不受支持。
  • 你对构建目录有写权限吗?可以手动创建目录吗?只是想知道这是否是权限问题。这可能是相关的:dev.vaadin.com/ticket/7875
  • @miq 已授予所有权利。不,我没有创建目录。我想它正在尝试在压缩文件“.jar”中创建一个文件夹。那 !表示正在更改特定 zip 文件的内容。
  • @ricardobobbo 可能是这样,或者它可能只是指示作为下面行源的 jar 文件(以 WidgetsetBuilder.java:79 结尾)。如果您想让我仔细看看,请删除您所有的 java 类并让项目在某处可用(例如 dropbox)。

标签: java scala intellij-idea sbt vaadin


【解决方案1】:

我遇到了同样的问题,我做了以下修复:

  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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-13
    • 2014-05-04
    • 2020-07-16
    • 2018-10-06
    • 2012-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多