What is the minimum set of jars from lib directory?

The “dependency” lib directory for the Vaadin distribution consists of 48 jars. Are they really all required? For instance, I’ve got to wonder why Vaadin needs 14 jetty libraries (in our case, we’re running our app in an embedded Tomcat instance, so our code definitely doesn’t need jetty libs). Vaadin is more bloated now (from a classpath perspective) than Crystal Reports (which we use in our product too - that has 47 jars!) Just curious, I guess.

Hi,

The easiest way to see what is needed is to create a new Maven project (or Ivy project with the Eclipse plugin).

In Eclipse you can expand the
"Ivy ivy.xml [default]
" classpath container to see what needs to be deployed

In Maven you can do

mvn dependency:tree to get something like

[INFO]
± com.vaadin:vaadin-server:jar:7.3.2:compile
[INFO]
| ± com.vaadin:vaadin-sass-compiler:jar:0.9.10:compile
[INFO]
| | - com.vaadin.external.flute:flute:jar:1.3.0.gg2:compile
[INFO]
| ± com.vaadin:vaadin-shared:jar:7.3.2:compile
[INFO]
| | ± com.vaadin.external.streamhtmlparser:streamhtmlparser-jsilver:jar:0.0.10.vaadin1:compile
[INFO]
| | ± com.vaadin.external.google:guava:jar:16.0.1.vaadin1:compile
[INFO]
| | - com.vaadin.external.json:json:jar:0.0.20080701:compile
[INFO]
| - org.jsoup:jsoup:jar:1.6.3:compile
[INFO]
± com.vaadin:vaadin-client-compiled:jar:7.3.2:compile
[INFO]
± com.vaadin:vaadin-client:jar:7.3.2:provided
[INFO]
| ± org.w3c.css:sac:jar:1.3:compile
[INFO]
| ± javax.validation:validation-api:jar:1.0.0.GA:provided
[INFO]
| - javax.validation:validation-api:jar:sources:1.0.0.GA:provided
[INFO]
± com.vaadin:vaadin-push:jar:7.3.2:compile
[INFO]
| - com.vaadin.external.atmosphere:atmosphere-runtime:jar:2.1.2.vaadin5:compile
[INFO]
| - com.vaadin.external.slf4j:vaadin-slf4j-jdk14:jar:1.6.1:compile
[INFO]
± com.vaadin:vaadin-themes:jar:7.3.2:compile
[INFO]
- javax.servlet:javax.servlet-api:jar:3.0.1:provided

Most of the jars in the “lib” directory in the vaadin-all.zip are dependencies needed by vaadin-client-compiler for compiling the widget set. These need not and should not be deployed to the server.

Thanks Artur,
I know very little about either maven or ivy (our product’s build and directory structure was long ago - before either of these tools existsed - cast in stone and we never revisited it). Strangely, when I tried as you suggest (using the Netbeans vaadin plugin), the dependencies that get created as part of a new project refer to libraries that aren’t even available yet! (for Vaadin 7.4.0alpha9???). Why would a publicly available plugin create references to unreleased software? A bug in the Netbeans plugin perhaps?