Compiling Vaasin 7 widgetset with Gradle

edit: (Sorry for the typo: Vaasin, meant Vaadin of course. A little to fast on the keyboard)

Hi!

I’m trying to compile a widgetset using Gradle. As I am behind a proxy I can’t use the Gradle Vaadin plugin but must do it manually. I haven’t found any Gradle examples for Vaadin 7 so my build is based off the Vaadin 6 examples I’ve found.

When compiling the widgetset, the compiler throws an exception and claims that the default widgetset isn’t on my build path.

Excerpt from my build file:


def vaadinVersion = '7.0.+'
dependencies {
	testCompile group: "junit", name: "junit", version: "4.5"
	compile group:'com.vaadin', name:'vaadin-shared', version:vaadinVersion
	compile group:'com.vaadin', name:'vaadin-shared-deps', version:"1.+"
	compile group:'com.vaadin', name:'vaadin-server', version:vaadinVersion
	compile group:'com.vaadin', name:'vaadin-client-compiled', version:vaadinVersion
	compile group:'com.vaadin', name:'vaadin-client-compiler', version:vaadinVersion
	compile group:'com.vaadin', name:'vaadin-themes', version:vaadinVersion
	compile group:'com.vaadin', name:'vaadin-theme-compiler', version:vaadinVersion
	compile group:'com.vaadin', name:'vaadin-theme-compiler', version:vaadinVersion
	compile group: "javax.ejb", name:"ejb-api", version:"+"
	compile group: "javax.transaction", name:"jta", version:"+"
	compile group: "javax.validation", name:"validation-api", version:"+"
	compile group: "javax.servlet", name:"servlet-api", version: "+"
	compile group: "org.jsoup", name:"jsoup", version:"+"
	compile group: "org.vaadin.addons", name:"dcharts-widget", version: "1.7.0"
	compile group: "org.vaadin.addons", name:"sparklines", version: "7.0.2"
	compile project(":mytest-statistics")
}

...

task cleanWidgetset(type: Delete) {
	delete webAppDirName+'/VAADIN/widgetsets'
}

task compileWidgetset(type: JavaExec, dependsOn: cleanWidgetset) {
	main = 'com.vaadin.tools.WidgetsetCompiler'
	classpath sourceSets.main.resources.srcDirs
	classpath configurations.compile
	classpath configurations.gwt
	jvmArgs '-Xss1024k'
	args '-logLevel'
	args 'INFO'
	args '-war'
	args webAppDirName+'/VAADIN/widgetsets'
	args '-deploy'
	args webAppDirName+'/WEB-INF/deploy'
	args "com.liljeson.mattias.statistics.web.widgetset.web-statisticsWidgetset"
}

Output:


...
Updating GWT module description file...                                                            
Jul 16, 2013 11:09:20 AM com.vaadin.server.widgetsetutils.ClassPathExplorer getAvailableWidgetSets 
INFO: Widgetsets found from classpath:                                                             
        org.dussan.vaadin.dcharts.DchartsWidgetset in jar:file:/local/.gradle/caches/artifacts-23/filestore/org.vaadin.addons/dcharts-widget/1.7.0/jar/d0c08997dd24b79d780965ab72a16f3eb210d058/dcharts-widget-1.7.0.jar!/                                                                                      
        org.vaadin.sparklines.SparklinesWidgetset in jar:file:/local/.gradle/caches/artifacts-23/filestore/org.vaadin.addons/sparklines/7.0.2/jar/99588ad0ea3f3681b1a42ecb94c31b74a8467f94/sparklines-7.0.2.jar!/                                                                                               
        com.liljeson.mattias.statistics.web.widgetset.web-statisticsWidgetset in file:/local/repos/mytest-shared/web-statistics/src/main/resources                                                                                                                                                       

Jul 16, 2013 11:09:20 AM com.vaadin.server.widgetsetutils.ClassPathExplorer getAvailableWidgetSets
INFO: Search took 17ms                                                                            
Done.                                                                                             
Starting GWT compiler                                                                             
Loading inherited module 'com.liljeson.mattias.statistics.web.widgetset.web-statisticsWidgetset'    
   Loading inherited module 'org.dussan.vaadin.dcharts.DchartsWidgetset'                          
      Loading inherited module 'com.vaadin.DefaultWidgetSet'                                      
         [ERROR]
 Unable to find 'com/vaadin/DefaultWidgetSet.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source?
[ERROR]
 Line 14: Unexpected exception while processing element 'inherits'                                                                         
com.google.gwt.core.ext.UnableToCompleteException: (see previous log entries)
...

I’ve changed packages and paths to mytest and com.liljeson.mattias from their real names due to confidentiality concerns. Any help is appreciated!

Here there is a working example of vaadin 7 with gradle
https://bitbucket.org/banterCZ/vaadin-workshop/src

Speaking about proxy, just set it in ~/.gradle/gradle.properties

systemProp.http.proxyHost=myproxy.com
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=chuck.norris
systemProp.http.proxyPassword=password
systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost