如何使用Gradle构建Vaadin项目?

4

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

4个回答

5

正如前面已经提到的,Vaadin应用程序是一个简单的Web应用程序,不需要任何额外的插件,只需使用“java”和“war”(可能需要“jetty”来运行应用程序)。目前似乎有第一个专门针对Vaadin的Gradle插件可用:

https://github.com/johndevs/gradle-vaadin-plugin

它将帮助您完成Vaadin特定的任务,例如构建widget集,创建组件框架等。


3
我认为目前没有一个针对Gradle的Vaadin插件,但是我曾在我的一个Vaadin插件项目中使用过Gradle:SplitButton。这是一个包含子项目、小部件集编译和编写必要的jar清单条目以满足Vaadin目录需求的项目。
编辑: 实际上现在有了Gradle Vaadin插件-它可以让你轻松地使用Gradle构建Vaadin项目。它可以帮助您完成构建Vaadin项目时最繁琐的任务,如构建widgetset和运行开发模式。它还通过提供项目、组件和主题创建任务来帮助您快速入门:https://github.com/johndevs/gradle-vaadin-plugin

3
你不需要Vaadin插件。Vaadin应用程序只是一个Web应用程序。war插件就足够了。但是,如果你想要自动创建Vaadin所需的文件夹布局支持,可以考虑使用在这里找到的Vaadin Eclipse插件:

http://vaadin.com/eclipse

如果您正在寻找部署支持,您可以直接使用Gradle自带的Jetty插件或在此处找到的Tomcat插件。

https://github.com/bmuschko/gradle-tomcat-plugin

如果您需要创建自定义小部件并将它们编译到一个GWT编译的小部件集中。

https://vaadin.com/book/vaadin6/-/page/gwt.development.html#gwt.development.compiler

注意:Vaadin7书籍不再包含开发Gwt小部件的章节。
有一个Gradle插件可用于GWT,可以帮助解决此问题。但是,我还没有需要自定义小部件,因此实际上尚未尝试过它。

https://github.com/markuskobler/gwt-gradle-plugin


1
你必须创建 Vaadin (GWT) 的小部件。虽然 Maven 有一个插件,但是 Gradle 却没有。 - Mark

2
这篇文章

使用 Gradle 进行 Vaadin 开发

就 Vaadin 和 Gradle 架构而言,看起来非常全面。我还包括了 我在旅途中发现的另一个基于 Vaadin 的 'build.gradle' 链接,使用了 Google 非常有用的 'filetype' 搜索(还请查看相关的 gradle.properties 文件)。

JFYI,Google 文件搜索是:

filetype:<extension> <your search phrases>

Gradle也可以用于配置Eclipse和IntelliJ的项目文件,可以使用以下片段(通过使用上面的Google文件搜索来查找“project”扩展名和“natures”搜索等,可以找到Eclipse natures):
//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])
                }
        }
    }
}

干杯
富有的,丰富的

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接