如何与gradle建立Vaadin项目?

如何与gradle建立Vaadin项目?,vaadin,gradle,Vaadin,Gradle,我有gradle项目(后端),我想添加基于Vaadin的前端。但是我还没有找到任何用于Vaadin的gradle插件。我认为没有用于gradle的Vaadin插件,但我在我的一个Vaadin附加项目中使用了gradle:。这是一个包含子项目、widgetset编译的项目,它编写了由Vaadin目录指定的必要jar清单条目 编辑 实际上现在有了Gradle Vaadin插件-它允许您轻松地使用Gradle构建Vaadin项目。在构建Vaadin项目(如构建widgetset和运行开发模式)时,它有

我有gradle项目(后端),我想添加基于Vaadin的前端。但是我还没有找到任何用于Vaadin的gradle插件。

我认为没有用于gradle的Vaadin插件,但我在我的一个Vaadin附加项目中使用了gradle:。这是一个包含子项目、widgetset编译的项目,它编写了由Vaadin目录指定的必要jar清单条目

编辑 实际上现在有了Gradle Vaadin插件-它允许您轻松地使用Gradle构建Vaadin项目。在构建Vaadin项目(如构建widgetset和运行开发模式)时,它有助于完成最繁琐的任务。它还通过为项目、组件和主题创建提供任务,帮助您快速入门:


您不需要Vaadin插件。Vaadin应用程序只是一个web应用程序,war插件就足够了。但是,如果您希望支持自动创建Vaadin想要的文件夹布局,您可以使用以下Vaadin eclipse插件:

如果您正在寻找部署支持,只需使用gradle附带的jetty插件或此处找到的tomcat插件即可

如果您需要创建自定义小部件并将它们编译成一个widgetset,这是一个GWT编译

注意:Vaadin7书中不再有关于开发Gwt小部件的部分

GWT有一个gradle插件可以帮助实现这一点。然而,我还不需要定制小部件,所以我还没有真正尝试过

这是:

就Gradle+Vaadin设置而言,看起来非常全面。我还包括我在旅行中发现的文件,使用(另请参见相关文件)

JFYI,谷歌文件搜索是:

filetype:<extension> <your search phrases>
干杯


Rich

正如上文所述,Vaadin应用程序是一个简单的web应用程序,除了“java”和“war”(可能还有运行该应用程序的“jetty”)之外,不需要任何其他插件,但目前似乎有第一个Vaadin特定的gradle插件可用:


它将帮助您完成特定于Vaadin的任务,如构建WidgetSet、创建组件骨架等。

您必须创建Vaadin(GWT)的小部件。它有一个Maven的插件,但没有Gradle的插件。
//Template plugin - Great for project-layout setup - See http://tellurianring.com/wiki/gradle/templates
apply from: 'http://launchpad.net/gradle-templates/trunk/latest/+download/apply.groovy'

apply plugin: 'eclipse'
apply plugin: 'idea'

// if you want to distribute the gradle with your code
task('wrapper', type: Wrapper).configure {
    gradleVersion = '1.0-milestone-8a'
}

def versionCompatibility = 1.6

//configurations.providedDependencies.extendsFrom configurations.gwt

eclipse {
    project {
        comment = ""

        buildCommand "org.eclipse.jdt.core.javabuilder"
        buildCommand "org.eclipse.wst.jsdt.core.javascriptValidator"
        buildCommand "org.eclipse.wst.common.project.facet.core.builder"
        buildCommand "org.eclipse.wst.validation.validationbuilder"
        buildCommand "com.vaadin.integration.eclipse.widgetsetBuilder"
        //buildCommand "org.eclipse.m2e.core.maven2Builder"
        //buildCommand "org.maven.ide.eclipse.maven2Builder"
        //buildCommand "com.google.gdt.eclipse.core.webAppProjectValidator"
        //buildCommand "com.google.gwt.eclipse.core.gwtProjectValidator"
        //buildCommand "com.google.gdt.eclipse.designer.GWTBuilder"


            //Don't forget commas - no trailing
            natures "org.eclipse.jdt.core.javanature",
            "com.vaadin.integration.eclipse.widgetsetNature",
            "org.eclipse.wst.jsdt.core.jsNature",
            "org.eclipse.wst.common.project.facet.core.nature",
            "org.eclipse.wst.common.modulecore.ModuleCoreNature",
            "org.eclipse.jem.workbench.JavaEMFNature"
            //"org.eclipse.m2e.core.maven2Nature",
            //"org.maven.ide.eclipse.maven2Nature",
            //"com.google.gwt.eclipse.core.gwtNature"
            //"com.google.gdt.eclipse.designer.GWTNature",
            //"ch.epfl.lamp.sdt.core.scalanature",
            //"com.springsource.sts.grails.core.nature",
            //"org.eclipse.jdt.groovy.core.groovyNature"
    }

    classpath {
            containers "com.google.gwt.eclipse.core.GWT_CONTAINER"
            //"com.springsource.sts.gradle.classpathcontainer"

            //minusConfigurations=[configurations.gwt]
    }
}

idea {
    project {
            jdkName = versionCompatibility

        ipr {
                withXml { provider ->
                    def node = provider.asNode()

                    // Set Gradle home
                    def gradleSettings = node.appendNode('component', [name: 'GradleSettings'])
                    gradleSettings.appendNode('option', [name: 'SDK_HOME', value: gradle.gradleHomeDir])
                }
        }
    }
}