Since version 7.1.1 the compilation of a vaadin widgetset usind maven on Windows through eclipse (no vaadin plugin installed) and on the commandline (no eclipse) is not possible any more.
The problem arises as the paths used in the classpath are absolute (i.e. C:/...) and so the URL that gets created in the ClassPathExplorer is incorrect: i.e. file://C:/...
There should be three slashes following the "file:" part, as the host is omitted locally.
The problem moreover gets relevant as the method com.vaadin.server.widgetsetutils.WidgetSetBuilder.updateWidgetSet(final String widgetset) uses new File(sourceURL.toURI()) now, which leads to an IllegalArgumentException because the drive letter got set as authority to the URI.
Suggested repair (see attached JUnitTest):
com.vaadin.server.widgetsetutils.ClassPathExplorer in Method include(String, File, Map<String, URL>) change line 454 to:
Originally by _hitchhikerjiri
Since version 7.1.1 the compilation of a vaadin widgetset usind maven on Windows through eclipse (no vaadin plugin installed) and on the commandline (no eclipse) is not possible any more. The problem arises as the paths used in the classpath are absolute (i.e. C:/...) and so the URL that gets created in the ClassPathExplorer is incorrect: i.e. file://C:/... There should be three slashes following the "file:" part, as the host is omitted locally. The problem moreover gets relevant as the method com.vaadin.server.widgetsetutils.WidgetSetBuilder.updateWidgetSet(final String widgetset) uses new File(sourceURL.toURI()) now, which leads to an IllegalArgumentException because the drive letter got set as authority to the URI.
Suggested repair (see attached JUnitTest): com.vaadin.server.widgetsetutils.ClassPathExplorer in Method include(String, File, Map<String, URL>) change line 454 to:
Imported from https://dev.vaadin.com/ issue #20316