Compiling widget set with TeamCity and Maven

I’m fairly new to Vaadin but found it intuitive and powerful, really fits our needs well. Recently, however we ran into prblems when trying to include more add-ons in one of the projects where the build model used Ant (the Ant plugin for Maven; build-widgetset.xml). We exchanged that for the GWT and Vaadin plugins for Maven to build the widget set without Ant and it works like a charm when building locally.

However, our build system is set up in TeamCity and distributes builds to our various environments. When building in TeamCity - using the exact same goals - the widgets aren’t rebuilt!

This is the output of the relevant project when built locally (Maven 3.2.5):

[INFO]
 --- gwt-maven-plugin:2.4.0:compile (default-cli) @ reforce-fasthi-common ---
[INFO]
 auto discovered modules [org.vaadin.hene.popupbutton.widgetset.PopupbuttonWidgetset, org.vaadin.jouni.animator.AnimatorWidgetset]

[WARNING]
 Don't declare gwt-dev as a project dependency. This may introduce complex dependency conflicts
[INFO]
 Compiling module org.vaadin.hene.popupbutton.widgetset.PopupbuttonWidgetset
[INFO]
    Scanning for additional dependencies: jar:file:/C:/Users/Dan/.m2/repository/com/vaadin/vaadin/6.8.7/vaadin-6.8.7.jar!/com/vaadin/terminal/gwt/client/WidgetSet.java
[INFO]
       Computing all possible rebind results for 'com.vaadin.terminal.gwt.client.WidgetMap'
[INFO]
          Rebinding com.vaadin.terminal.gwt.client.WidgetMap
[INFO]
             Invoking generator com.vaadin.terminal.gwt.widgetsetutils.EagerWidgetMapGenerator
[INFO]
                Detecting Vaadin components in classpath to generate WidgetMapImpl.java ...
[ERROR]
 jan 16, 2015 4:08:34 EM com.vaadin.terminal.gwt.widgetsetutils.ClassPathExplorer getPaintablesHavingWidgetAnnotation
[ERROR]
 INFO: Searching for paintables..
[ERROR]
 jan 16, 2015 4:08:36 EM com.vaadin.terminal.gwt.widgetsetutils.ClassPathExplorer getPaintablesHavingWidgetAnnotation
[ERROR]
 INFO: Search took 1263ms
[INFO]
                Widget set will contain implementations for following components: 
[INFO]
                    com.vaadin.ui.AbsoluteLayout
[INFO]
                    com.vaadin.ui.Accordion
[INFO]
                    com.vaadin.ui.Audio
[INFO]
                    com.vaadin.ui.Button
[INFO]
                    com.vaadin.ui.CheckBox
[INFO]
                    com.vaadin.ui.ComboBox
[INFO]
                    com.vaadin.ui.CssLayout
[INFO]
                    com.vaadin.ui.CustomComponent
[INFO]
                    com.vaadin.ui.CustomLayout
[INFO]
                    com.vaadin.ui.DateField
[INFO]
                    com.vaadin.ui.DragAndDropWrapper
[INFO]
                    com.vaadin.ui.Embedded
[INFO]
                    com.vaadin.ui.Form
[INFO]
                    com.vaadin.ui.FormLayout
[INFO]
                    com.vaadin.ui.GridLayout
[INFO]
                    com.vaadin.ui.HorizontalLayout
[INFO]
                    com.vaadin.ui.HorizontalSplitPanel
[INFO]
                    com.vaadin.ui.InlineDateField
[INFO]
                    com.vaadin.ui.Label
[INFO]
                    com.vaadin.ui.Link
[INFO]
                    com.vaadin.ui.ListSelect
[INFO]
                    com.vaadin.ui.MenuBar
[INFO]
                    com.vaadin.ui.NativeButton
[INFO]
                    com.vaadin.ui.NativeSelect
[INFO]
                    com.vaadin.ui.OptionGroup
[INFO]
                    com.vaadin.ui.OrderedLayout
[INFO]
                    com.vaadin.ui.Panel
[INFO]
                    com.vaadin.ui.PasswordField
[INFO]
                    com.vaadin.ui.PopupView
[INFO]
                    com.vaadin.ui.ProgressIndicator
[INFO]
                    com.vaadin.ui.RichTextArea
[INFO]
                    com.vaadin.ui.Select
[INFO]
                    com.vaadin.ui.Slider
[INFO]
                    com.vaadin.ui.SplitPanel
[INFO]
                    com.vaadin.ui.TabSheet
[INFO]
                    com.vaadin.ui.Table
[INFO]
                    com.vaadin.ui.TextArea
[INFO]
                    com.vaadin.ui.TextField
[INFO]
                    com.vaadin.ui.Tree
[INFO]
                    com.vaadin.ui.TreeTable
[INFO]
                    com.vaadin.ui.TwinColSelect
[INFO]
                    com.vaadin.ui.Upload
[INFO]
                    com.vaadin.ui.UriFragmentUtility
[INFO]
                    com.vaadin.ui.VerticalLayout
[INFO]
                    com.vaadin.ui.VerticalSplitPanel
[INFO]
                    com.vaadin.ui.Video
[INFO]
                    com.vaadin.ui.Window
[INFO]
                    org.vaadin.artur.icepush.ICEPush
[INFO]
                Done. (1seconds)
[INFO]
    Scanning for additional dependencies: jar:file:/C:/Users/Dan/.m2/repository/com/vaadin/vaadin/6.8.7/vaadin-6.8.7.jar!/com/vaadin/terminal/gwt/client/ui/dd/VAcceptCriteria.java
[INFO]
       Computing all possible rebind results for 'com.vaadin.terminal.gwt.client.ui.dd.VAcceptCriterionFactory'
[INFO]
          Rebinding com.vaadin.terminal.gwt.client.ui.dd.VAcceptCriterionFactory
[INFO]
             Invoking generator com.vaadin.terminal.gwt.widgetsetutils.AcceptCriteriaFactoryGenerator
[INFO]
                Detecting available criteria ...
[INFO]
                creating mapping for com.vaadin.event.dd.acceptcriteria.TargetDetailIs
[INFO]
                creating mapping for com.vaadin.event.dd.acceptcriteria.Not
[INFO]
                creating mapping for com.vaadin.ui.AbstractSelect.AcceptItem
[INFO]
                creating mapping for com.vaadin.event.dd.acceptcriteria.ContainsDataFlavor
[INFO]
                creating mapping for com.vaadin.event.dd.acceptcriteria.SourceIsTarget
[INFO]
                creating mapping for com.vaadin.event.dd.acceptcriteria.SourceIs
[INFO]
                creating mapping for com.vaadin.ui.Tree.TreeDropCriterion
[INFO]
                creating mapping for com.vaadin.event.dd.acceptcriteria.Or
[INFO]
                creating mapping for com.vaadin.event.dd.acceptcriteria.AcceptAll
[INFO]
                creating mapping for com.vaadin.ui.Table.TableDropCriterion
[INFO]
                creating mapping for com.vaadin.event.dd.acceptcriteria.And
[INFO]
                creating mapping for com.vaadin.event.dd.acceptcriteria.ServerSideCriterion
[INFO]
                creating mapping for com.vaadin.ui.AbstractSelect.TargetItemIs
[INFO]
                creating mapping for com.vaadin.ui.Tree.TargetInSubtree
[INFO]
                Done. (0seconds)
[INFO]
    Compiling 6 permutations
[INFO]
       Compiling permutation 0...
[INFO]
       Process output
[INFO]
          Compiling
[INFO]
             Compiling permutation 2...
[INFO]
       Process output
[INFO]
          Compiling
[INFO]
             Compiling permutation 1...
[INFO]
       Process output
[INFO]
          Compiling
[INFO]
             Compiling permutation 3...
[INFO]
       Compiling permutation 4...
[INFO]
          Compiling
[INFO]
             Compiling permutation 5...
[INFO]
    Compile of permutations succeeded
[INFO]
 Linking into C:\Source\fasthi\common\target\reforce-fasthi-common-0.1-SNAPSHOT\VAADIN\widgetsets\org.vaadin.hene.popupbutton.widgetset.PopupbuttonWidgetset
[INFO]
    Link succeeded
[INFO]
    Compilation succeeded -- 73,429s
[INFO]
 Compiling module org.vaadin.jouni.animator.AnimatorWidgetset
[INFO]
    Scanning for additional dependencies: jar:file:/C:/Users/Dan/.m2/repository/com/vaadin/vaadin/6.8.7/vaadin-6.8.7.jar!/com/vaadin/terminal/gwt/client/WidgetSet.java
[INFO]
       Computing all possible rebind results for 'com.vaadin.terminal.gwt.client.WidgetMap'
[INFO]
          Rebinding com.vaadin.terminal.gwt.client.WidgetMap
[INFO]
             Invoking generator com.vaadin.terminal.gwt.widgetsetutils.EagerWidgetMapGenerator
[INFO]
                Detecting Vaadin components in classpath to generate WidgetMapImpl.java ...
[ERROR]
 jan 16, 2015 4:09:43 EM com.vaadin.terminal.gwt.widgetsetutils.ClassPathExplorer getPaintablesHavingWidgetAnnotation
[ERROR]
 INFO: Searching for paintables..
[ERROR]
 jan 16, 2015 4:09:43 EM com.vaadin.terminal.gwt.widgetsetutils.ClassPathExplorer getPaintablesHavingWidgetAnnotation
[ERROR]
 INFO: Search took 24ms
[INFO]
                Widget set will contain implementations for following components: 
[INFO]
                    com.vaadin.ui.AbsoluteLayout
[INFO]
                    com.vaadin.ui.Accordion
[INFO]
                    com.vaadin.ui.Audio
[INFO]
                    com.vaadin.ui.Button
[INFO]
                    com.vaadin.ui.CheckBox
[INFO]
                    com.vaadin.ui.ComboBox
[INFO]
                    com.vaadin.ui.CssLayout
[INFO]
                    com.vaadin.ui.CustomComponent
[INFO]
                    com.vaadin.ui.CustomLayout
[INFO]
                    com.vaadin.ui.DateField
[INFO]
                    com.vaadin.ui.DragAndDropWrapper
[INFO]
                    com.vaadin.ui.Embedded
[INFO]
                    com.vaadin.ui.Form
[INFO]
                    com.vaadin.ui.FormLayout
[INFO]
                    com.vaadin.ui.GridLayout
[INFO]
                    com.vaadin.ui.HorizontalLayout
[INFO]
                    com.vaadin.ui.HorizontalSplitPanel
[INFO]
                    com.vaadin.ui.InlineDateField
[INFO]
                    com.vaadin.ui.Label
[INFO]
                    com.vaadin.ui.Link
[INFO]
                    com.vaadin.ui.ListSelect
[INFO]
                    com.vaadin.ui.MenuBar
[INFO]
                    com.vaadin.ui.NativeButton
[INFO]
                    com.vaadin.ui.NativeSelect
[INFO]
                    com.vaadin.ui.OptionGroup
[INFO]
                    com.vaadin.ui.OrderedLayout
[INFO]
                    com.vaadin.ui.Panel
[INFO]
                    com.vaadin.ui.PasswordField
[INFO]
                    com.vaadin.ui.PopupView
[INFO]
                    com.vaadin.ui.ProgressIndicator
[INFO]
                    com.vaadin.ui.RichTextArea
[INFO]
                    com.vaadin.ui.Select
[INFO]
                    com.vaadin.ui.Slider
[INFO]
                    com.vaadin.ui.SplitPanel
[INFO]
                    com.vaadin.ui.TabSheet
[INFO]
                    com.vaadin.ui.Table
[INFO]
                    com.vaadin.ui.TextArea
[INFO]
                    com.vaadin.ui.TextField
[INFO]
                    com.vaadin.ui.Tree
[INFO]
                    com.vaadin.ui.TreeTable
[INFO]
                    com.vaadin.ui.TwinColSelect
[INFO]
                    com.vaadin.ui.Upload
[INFO]
                    com.vaadin.ui.UriFragmentUtility
[INFO]
                    com.vaadin.ui.VerticalLayout
[INFO]
                    com.vaadin.ui.VerticalSplitPanel
[INFO]
                    com.vaadin.ui.Video
[INFO]
                    com.vaadin.ui.Window
[INFO]
                    org.vaadin.artur.icepush.ICEPush
[INFO]
                Done. (0seconds)
[INFO]
    Scanning for additional dependencies: jar:file:/C:/Users/Dan/.m2/repository/com/vaadin/vaadin/6.8.7/vaadin-6.8.7.jar!/com/vaadin/terminal/gwt/client/ui/dd/VAcceptCriteria.java
[INFO]
       Computing all possible rebind results for 'com.vaadin.terminal.gwt.client.ui.dd.VAcceptCriterionFactory'
[INFO]
          Rebinding com.vaadin.terminal.gwt.client.ui.dd.VAcceptCriterionFactory
[INFO]
             Invoking generator com.vaadin.terminal.gwt.widgetsetutils.AcceptCriteriaFactoryGenerator
[INFO]
                Detecting available criteria ...
[INFO]
                creating mapping for com.vaadin.event.dd.acceptcriteria.TargetDetailIs
[INFO]
                creating mapping for com.vaadin.event.dd.acceptcriteria.Not
[INFO]
                creating mapping for com.vaadin.ui.AbstractSelect.AcceptItem
[INFO]
                creating mapping for com.vaadin.event.dd.acceptcriteria.ContainsDataFlavor
[INFO]
                creating mapping for com.vaadin.event.dd.acceptcriteria.SourceIsTarget
[INFO]
                creating mapping for com.vaadin.event.dd.acceptcriteria.SourceIs
[INFO]
                creating mapping for com.vaadin.ui.Tree.TreeDropCriterion
[INFO]
                creating mapping for com.vaadin.event.dd.acceptcriteria.Or
[INFO]
                creating mapping for com.vaadin.event.dd.acceptcriteria.AcceptAll
[INFO]
                creating mapping for com.vaadin.ui.Table.TableDropCriterion
[INFO]
                creating mapping for com.vaadin.event.dd.acceptcriteria.And
[INFO]
                creating mapping for com.vaadin.event.dd.acceptcriteria.ServerSideCriterion
[INFO]
                creating mapping for com.vaadin.ui.AbstractSelect.TargetItemIs
[INFO]
                creating mapping for com.vaadin.ui.Tree.TargetInSubtree
[INFO]
                Done. (0seconds)
[INFO]
    Compiling 6 permutations
[INFO]
       Compiling permutation 0...
[INFO]
       Process output
[INFO]
          Compiling
[INFO]
             Compiling permutation 1...
[INFO]
       Process output
[INFO]
          Compiling
[INFO]
             Compiling permutation 2...
[INFO]
       Process output
[INFO]
          Compiling
[INFO]
             Compiling permutation 3...
[INFO]
       Compiling permutation 4...
[INFO]
          Compiling
[INFO]
             Compiling permutation 5...
[INFO]
    Compile of permutations succeeded
[INFO]
 Linking into C:\Source\fasthi\common\target\reforce-fasthi-common-0.1-SNAPSHOT\VAADIN\widgetsets\org.vaadin.jouni.animator.AnimatorWidgetset
[INFO]
    Link succeeded
[INFO]
    Compilation succeeded -- 56,420s

Works well. Also works if we build locally and deploy to an environment (production, stage or similar).

But when we build it via TeamCity:

[15:21:59]
[se.reforce:reforce-fasthi-core]
 [INFO]
 --- gwt-maven-plugin:2.4.0:compile (default) @ reforce-fasthi-core ---
[15:21:59]
[se.reforce:reforce-fasthi-core]
 [INFO]
 auto discovered modules [org.vaadin.cssinject.Cssinject_addonWidgetset, org.vaadin.jouni.animator.AnimatorWidgetset, com.invient.vaadin.charts.widgetset.InvientChartsWidgetset, org.vaadin.artur.icepush.IcepushaddonWidgetset, org.vaadin.hene.popupbutton.widgetset.PopupbuttonWidgetset, org.tepi.filtertable.gwt.FilterTableWidgetset, com.vaadin.terminal.gwt.DefaultWidgetSet]

[15:21:59]
[se.reforce:reforce-fasthi-core]
 [WARNING]
 Don't declare gwt-dev as a project dependency. This may introduce complex dependency conflicts
[15:21:59]
[se.reforce:reforce-fasthi-core]
 [INFO]
 org.vaadin.cssinject.Cssinject_addonWidgetset has no EntryPoint - compilation skipped
[15:21:59]
[se.reforce:reforce-fasthi-core]
 [INFO]
 org.vaadin.jouni.animator.AnimatorWidgetset has no EntryPoint - compilation skipped
[15:21:59]
[se.reforce:reforce-fasthi-core]
 [INFO]
 com.invient.vaadin.charts.widgetset.InvientChartsWidgetset has no EntryPoint - compilation skipped
[15:21:59]
[se.reforce:reforce-fasthi-core]
 [INFO]
 org.vaadin.artur.icepush.IcepushaddonWidgetset has no EntryPoint - compilation skipped
[15:21:59]
[se.reforce:reforce-fasthi-core]
 [INFO]
 org.vaadin.hene.popupbutton.widgetset.PopupbuttonWidgetset has no EntryPoint - compilation skipped
[15:21:59]
[se.reforce:reforce-fasthi-core]
 [INFO]
 org.tepi.filtertable.gwt.FilterTableWidgetset has no EntryPoint - compilation skipped
[15:21:59]
[se.reforce:reforce-fasthi-core]
 [INFO]
 com.vaadin.terminal.gwt.DefaultWidgetSet has no EntryPoint - compilation skipped
[15:21:59]
[se.reforce:reforce-fasthi-core]
 [INFO]

[15:21:59]
[se.reforce:reforce-fasthi-core]
 [INFO]
 --- maven-jar-plugin:2.3.2:jar (default-jar) @ reforce-fasthi-core ---

It says “no EntryPoint” and nothing is built. Any ideas why?

I’ve tried celaning the Maven repos so there should be no leftovers disturbing the process.