我有gradle项目(后端),我想添加基于Vaadin的前端。但我没有为Vaadin找到任何gradle-plugins。
答案 0 :(得分:5)
虽然如上所述,Vaadin应用程序是一个简单的Web应用程序,不需要任何额外的插件,但“java”和“war”(也许是“jetty”来运行应用程序),目前似乎有第一个特定于vaadin的gradle插件:
https://github.com/johndevs/gradle-vaadin-plugin
它将帮助您完成Vaadin特定的任务,例如构建widgetset,创建组件框架等。
答案 1 :(得分:3)
我认为Gradle没有Vaadin插件,但我在我的一个Vaadin附加项目中使用了Gradle:SplitButton。这是一个包含子项目,widgetset编译的项目,它编写了Vaadin Directory所需的jar清单条目。
修改强> 实际上现在有Gradle Vaadin插件 - 它允许您使用Gradle轻松构建Vaadin项目。在构建Vaadin项目(如构建widgetset和运行开发模式)时,它可以帮助完成最繁琐的任务。它还可以通过提供项目,组件和主题创建任务来帮助您快速入门:
答案 2 :(得分:3)
您不需要Vaadin插件。 Vaadin应用程序只是一个Web应用程序。战争插件就足够了。如果你想支持自动创建Vaadin想要的文件夹布局,你可以考虑使用这里找到的vaadin 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 Book不再有关于开发Gwt小部件的部分。
GWT有一个gradle插件可以帮助解决这个问题。但是,我还不需要自定义小部件,所以我还没有尝试过它。
答案 3 :(得分:2)
这post:
看起来非常全面。我还使用a link to another Vaadin-based 'build.gradle'包含了我在旅行中找到的Google's very useful 'filetype' search文件(另请参阅相关的gradle.properties文件)。
JFYI,Google文件搜索是:
filetype:<extension> <your search phrases>
Gradle还可以通过使用如下的片段来配置Eclipse和IntelliJ的项目文件(通过使用上面的Google文件搜索“项目”扩展和“自然”搜索,可以“找到”Eclipse性质等) 。):
//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])
}
}
}
}
干杯
富