从命令行编译 vaadin widgetset

Compile vaadin widgetset from command line

在eclipse 中有一个用于vaadin 的插件。

当在项目中标记 *.widgetset 文件并单击 Compile vaading widgetset 它会在 WebContent\VAADIN\widgetsets 下编译 widgetset .所以我的问题是如何在没有 eclipse 的情况下从命令行执行它? 注意:我已经搜索过了,但是有maven的例子。这是旧项目,里面没有maven配置

您没有说明您使用的是哪个 Vaadin 版本,但编译器 class 至少在 Vaadin7 中似乎是这样的: https://vaadin.com/api/framework/7.6.8/com/vaadin/tools/WidgetsetCompiler.html

不确定命令行,但我有这种适用于 Vaadin7 的 ANT 脚本,也许它会有点帮助:

<target name="compile-widgetset" depends="init,resolve">
    <delete includeEmptyDirs="true">
        <fileset dir="${basedir}/WebContent/VAADIN/gwt-unitCache/" includes="**/*" defaultexcludes="no"/>
    </delete>
    <java classname="com.vaadin.tools.WidgetsetCompiler" failonerror="yes" fork="yes" maxmemory="600m">     
        <jvmarg value="-Xms512M"/>
        <jvmarg value="-Xmx1024M"/>
        <jvmarg value="-Xss8M"/>
        <jvmarg value="-Djava.awt.headless=true" />
        <arg value="-war"/>
        <arg value="WebContent/VAADIN/widgetsets"/>
        <arg value="${widgetset}"/>
        <arg value="-logLevel"/>
        <arg value="DEBUG"/>
        <arg value="-style"/>
        <arg value="OBF"/>

        <classpath>         
            <pathelement path="${module.src.dir}"/>
            <pathelement path="${module.build.dir}/WebContent/WEB-INF/classes" />
            <pathelement path="${module.build.dir}/WebContent/WEB-INF/lib" />
            <path refid="widgetset.path"/>
        </classpath>
    </java>
</target>

编译说明:https://vaadin.com/docs/v7/framework/clientside/clientside-compiling.html

我想出了用这个 url

https://github.com/canthony/simple-vaadin-7-compile-widgetset-ivy

我只添加了 manifest 标签以在 META-INF/MANIFEST.MF 文件

中包含依赖项
<war destfile="${artifacts}/${warfilename}"
     basedir="${workdir}"
     webxml="${webroot}/WEB-INF/web.xml"
    >
  <manifest>
    <attribute name="Dependencies" value="org.jboss.xnio, org.hibernate"/>
  </manifest>

  <lib dir="${webroot}/WEB-INF/lib" erroronmissingdir="no">
    <include name="*.jar"/>
  </lib>
  <lib dir="${libraries}" erroronmissingdir="no">
    <include name="*.jar"/>
  </lib>
</war>