title: maven same web application different war file size
body: <p>I have a Vaadin web application.  I am coding it on two different machines, with the same project on both machines, some of the same branches ( for instance, master is always refreshed from the remote repository and never changed directly on either machine, only via remote repository ).  It is being built on the following setups:</p>
  
  <ol>
  <li>A Mac using Eclipse Oxygen.3a Release (4.7.3a) and Maven</li>
  <li>On a PC using Eclipse 20190314-1200 and Maven</li>
  </ol>
  
  <p>For this problem, I build using "clean package" from Eclipse "Run" menu on both machines.  When I build the "master" branch on the Mac, it is 114.7 MB.  On the PC, it is 87.5 MB.  So here are my questions:</p>
  
  <ol>
  <li>Why the large size difference?</li>
  <li>Should I be concerned?</li>
  <li>If I should be concerned, that should I look for to find the problem?</li>
  </ol>
  
  <p>Ok, when I do a comparison on the production server of the tomcat webapps folders, I see that VAADIN folder is considerably bigger when compiled on Mac, which is mostly because of gwt-unitCache.  For whatever reason, I don't have that when I clean and package it on my PC.</p>
  
  <p>This is the war plugin section of my pom file:</p>
  
  <pre><code>            &lt;plugin&gt;
                  &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                  &lt;artifactId&gt;maven-war-plugin&lt;/artifactId&gt;
                  &lt;version&gt;2.3&lt;/version&gt;
                  &lt;configuration&gt;
                      &lt;failOnMissingWebXml&gt;false&lt;/failOnMissingWebXml&gt;
                      &lt;!-- Exclude some unnecessary files generated by the GWT compiler. --&gt;
                      &lt;!-- 
                      &lt;packagingExcludes&gt;WEB-INF/classes/VAADIN/gwt-unitCache/**,
                          WEB-INF/classes/VAADIN/widgetsets/WEB-INF/**,
                          WEB-INF/lib/*.jar&lt;/packagingExcludes&gt;
                      --&gt; 
                      &lt;packagingExcludes&gt;WEB-INF/classes/VAADIN/gwt-unitCache/**,
                          WEB-INF/classes/VAADIN/widgetsets/WEB-INF/**&lt;/packagingExcludes&gt;
                  &lt;/configuration&gt;
              &lt;/plugin&gt;
  </code></pre>
  
  <p>Maybe the version of Eclipse or Maven being used on the Mac ignores "packagingEcludes", but the one on the PC does not?</p>
  
  <p>Maven version being used by Eclipse on Mac:</p>
  
  <pre><code>Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T11:41:47-05:00)
  Maven home: /Users/work/Documents/workspaces/vaadin-eclipse-ide/vaadinwebsite/EMBEDDED
  Java version: 1.8.0_73, vendor: Oracle Corporation
  Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/jre
  Default locale: en_US, platform encoding: UTF-8
  OS name: "mac os x", version: "10.13.6", arch: "x86_64", family: "mac"
  </code></pre>
  
  <p>Maven version being used by Eclipse on the PC:</p>
  
  <pre><code>Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-24T14:49:05-05:00)
  Maven home: D:\tonybaldarelli\Documents\workspaces\eclipse-ide-for-java-ee-developers\vaadinwebsite\EMBEDDED
  Java version: 1.8.0_191, vendor: Oracle Corporation
  Java home: C:\Program Files\Java\jdk1.8.0_191\jre
  Default locale: en_US, platform encoding: Cp1252
  OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
  </code></pre>
  
  <p>So does the maven version explain this difference, do you think?</p>
  
  <p>Update 7/29/2019 in response to @khmarbaise:</p>
  
  <p>First of all, I am doing all this with the exact same branch.  In other words, I first did the tests on my Mac with the git "development" branch, then pushed it to the repository and pulled it on my PC.  I did NOT make any changes at all on my PC, just immediately did the tests below.</p>
  
  <p>Mac</p>
  
  <ul>
  <li>Eclipse mvn clean package size      114741855</li>
  <li>command line mvn clean package size 114741856</li>
  </ul>
  
  <p>PC</p>
  
  <ul>
  <li>Eclipse mvn clean package size      91805547</li>
  <li>command line mvn clean package size 91805548</li>
  </ul>
  
  <p>I fully agree that updating to a later plugin version would be a good idea, but my concern is that the behavior is so different between the two machines for the exact same POM.</p>
  
  <p>Here is the POM:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&gt;
      &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
  
      &lt;groupId&gt;com.mobiwms&lt;/groupId&gt;
      &lt;artifactId&gt;vaadinwebsite&lt;/artifactId&gt;
      &lt;packaging&gt;war&lt;/packaging&gt;
      &lt;version&gt;3.1&lt;/version&gt;
      &lt;name&gt;vaadinwebsite&lt;/name&gt;
  
      &lt;properties&gt;    
          &lt;vaadin.version&gt;7.7.13&lt;/vaadin.version&gt;
          &lt;vaadin.plugin.version&gt;${vaadin.version}&lt;/vaadin.plugin.version&gt;
          &lt;jetty.plugin.version&gt;9.4.15.v20190215&lt;/jetty.plugin.version&gt;
          &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
          &lt;maven.compiler.source&gt;1.8&lt;/maven.compiler.source&gt;
          &lt;maven.compiler.target&gt;1.8&lt;/maven.compiler.target&gt;
          &lt;jooq.version&gt;3.11.5&lt;/jooq.version&gt;
          &lt;!-- 
          &lt;jdbc.driver&gt;com.mysql.jdbc.Driver&lt;/jdbc.driver&gt;
          &lt;jdbc.url&gt;jdbc:mysql://107.15.201.231:3306/tsm&lt;/jdbc.url&gt;
          &lt;jdbc.user&gt;jasperrpt&lt;/jdbc.user&gt;
          &lt;jdbc.password&gt;jasper!39&lt;/jdbc.password&gt;
           --&gt;
      &lt;/properties&gt;
  
      &lt;repositories&gt;
          &lt;repository&gt;
              &lt;id&gt;vaadin-addons&lt;/id&gt;
              &lt;url&gt;http://maven.vaadin.com/vaadin-addons&lt;/url&gt;
          &lt;/repository&gt;
          &lt;repository&gt;
              &lt;id&gt;vaadin-snapshots&lt;/id&gt;
              &lt;url&gt;https://oss.sonatype.org/content/repositories/vaadin-snapshots/&lt;/url&gt;
              &lt;releases&gt;
                  &lt;enabled&gt;false&lt;/enabled&gt;
              &lt;/releases&gt;
              &lt;snapshots&gt;
                  &lt;enabled&gt;true&lt;/enabled&gt;
              &lt;/snapshots&gt;
          &lt;/repository&gt;
  
          &lt;repository&gt;
  
              &lt;releases&gt;
                  &lt;enabled&gt;true&lt;/enabled&gt;
                  &lt;updatePolicy&gt;always&lt;/updatePolicy&gt;
                  &lt;checksumPolicy&gt;fail&lt;/checksumPolicy&gt;
              &lt;/releases&gt;
  
              &lt;id&gt;mobiwmsrepo&lt;/id&gt;
              &lt;name&gt;mobiwms repository&lt;/name&gt;
  
              &lt;url&gt;http://107.15.201.60:9095/maven2/&lt;/url&gt;
              &lt;layout&gt;default&lt;/layout&gt;
          &lt;/repository&gt;
  
      &lt;/repositories&gt;
  
      &lt;dependencyManagement&gt;
          &lt;dependencies&gt;
              &lt;dependency&gt;
                  &lt;groupId&gt;com.vaadin&lt;/groupId&gt;
                  &lt;artifactId&gt;vaadin-bom&lt;/artifactId&gt;
                  &lt;version&gt;${vaadin.version}&lt;/version&gt;
                  &lt;type&gt;pom&lt;/type&gt;
                  &lt;scope&gt;import&lt;/scope&gt;
              &lt;/dependency&gt;
          &lt;/dependencies&gt;
      &lt;/dependencyManagement&gt;
  
      &lt;dependencies&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
              &lt;artifactId&gt;javax.servlet-api&lt;/artifactId&gt;
              &lt;version&gt;3.0.1&lt;/version&gt;
              &lt;scope&gt;provided&lt;/scope&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;com.vaadin&lt;/groupId&gt;
              &lt;artifactId&gt;vaadin-server&lt;/artifactId&gt;
              &lt;!-- &lt;version&gt;${vaadin.version}&lt;/version&gt; --&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;com.vaadin&lt;/groupId&gt;
              &lt;artifactId&gt;vaadin-push&lt;/artifactId&gt;
              &lt;!-- &lt;version&gt;${vaadin.version}&lt;/version&gt; --&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;com.vaadin&lt;/groupId&gt;
              &lt;artifactId&gt;vaadin-client&lt;/artifactId&gt;
              &lt;scope&gt;provided&lt;/scope&gt;
              &lt;!-- &lt;version&gt;${vaadin.version}&lt;/version&gt; --&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;com.vaadin.addon&lt;/groupId&gt;
              &lt;artifactId&gt;vaadin-charts&lt;/artifactId&gt;
              &lt;version&gt;3.2.0&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.vaadin.addons&lt;/groupId&gt;
              &lt;artifactId&gt;googleanalyticstracker&lt;/artifactId&gt;
              &lt;version&gt;2.1.0&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;com.vaadin&lt;/groupId&gt;
              &lt;artifactId&gt;vaadin-testbench&lt;/artifactId&gt;
              &lt;version&gt;4.0.3&lt;/version&gt;
              &lt;scope&gt;test&lt;/scope&gt;
          &lt;/dependency&gt;
          &lt;!--
            Needed when using the widgetset optimizer (custom ConnectorBundleLoaderFactory).
  
            For widgetset compilation, vaadin-client-compiler is automatically added on the
            compilation classpath by vaadin-maven-plugin so normally there is no need for an
            explicit dependency.
          --&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;com.vaadin&lt;/groupId&gt;
              &lt;artifactId&gt;vaadin-client-compiler&lt;/artifactId&gt;
              &lt;!-- &lt;version&gt;${vaadin.version}&lt;/version&gt; --&gt;
              &lt;scope&gt;provided&lt;/scope&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.peimari&lt;/groupId&gt;
              &lt;artifactId&gt;maddon&lt;/artifactId&gt;
              &lt;version&gt;1.15&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;com.vaadin&lt;/groupId&gt;
              &lt;artifactId&gt;vaadin-themes&lt;/artifactId&gt;
              &lt;!-- &lt;version&gt;${vaadin.version}&lt;/version&gt; --&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;com.google.guava&lt;/groupId&gt;
              &lt;artifactId&gt;guava&lt;/artifactId&gt;
              &lt;version&gt;27.0-jre&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;!--
          &lt;dependency&gt;
              &lt;groupId&gt;org.apache.ws.jaxme&lt;/groupId&gt;
              &lt;artifactId&gt;maven-jaxme-plugin&lt;/artifactId&gt;
              &lt;version&gt;1.0.3&lt;/version&gt;
              &lt;type&gt;maven-plugin&lt;/type&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.apache.ws.jaxme&lt;/groupId&gt;
              &lt;artifactId&gt;jaxme2&lt;/artifactId&gt;
              &lt;version&gt;0.5.2&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.apache.ws.jaxme&lt;/groupId&gt;
              &lt;artifactId&gt;jaxmeapi&lt;/artifactId&gt;
              &lt;version&gt;0.5.2&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.apache.ws.jaxme&lt;/groupId&gt;
              &lt;artifactId&gt;jaxmejs&lt;/artifactId&gt;
              &lt;version&gt;0.5.2&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.apache.ws.jaxme&lt;/groupId&gt;
              &lt;artifactId&gt;jaxmexs&lt;/artifactId&gt;
              &lt;version&gt;0.5.2&lt;/version&gt;
          &lt;/dependency&gt;
           --&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;javax.servlet.jsp&lt;/groupId&gt;
              &lt;artifactId&gt;jsp-api&lt;/artifactId&gt;
              &lt;version&gt;2.2.1-b03&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;jaxme&lt;/groupId&gt;
              &lt;artifactId&gt;jaxme&lt;/artifactId&gt;
              &lt;version&gt;0.3.1&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;jaxme&lt;/groupId&gt;
              &lt;artifactId&gt;jaxme-api&lt;/artifactId&gt;
              &lt;version&gt;0.3.1&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;jaxme&lt;/groupId&gt;
              &lt;artifactId&gt;jaxme-js&lt;/artifactId&gt;
              &lt;version&gt;0.3.1&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;jaxme&lt;/groupId&gt;
              &lt;artifactId&gt;jaxme-xs&lt;/artifactId&gt;
              &lt;version&gt;0.3.1&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;jaxme&lt;/groupId&gt;
              &lt;artifactId&gt;jaxme-pm&lt;/artifactId&gt;
              &lt;version&gt;0.3.1&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;jaxme&lt;/groupId&gt;
              &lt;artifactId&gt;jaxme-rt&lt;/artifactId&gt;
              &lt;version&gt;0.3.1&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;com.google.code.gson&lt;/groupId&gt;
              &lt;artifactId&gt;gson&lt;/artifactId&gt;
              &lt;version&gt;2.8.5&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;com.mobiwms&lt;/groupId&gt;
              &lt;artifactId&gt;jaxb&lt;/artifactId&gt;
              &lt;version&gt;0.5.8.99&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.vaadin.addons&lt;/groupId&gt;
              &lt;artifactId&gt;timefield&lt;/artifactId&gt;
              &lt;version&gt;0.9&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.vaadin.addons&lt;/groupId&gt;
              &lt;artifactId&gt;formcheckbox&lt;/artifactId&gt;
              &lt;version&gt;1.0.2&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;tm.kod&lt;/groupId&gt;
              &lt;artifactId&gt;numberfield7&lt;/artifactId&gt;
              &lt;version&gt;0.0.4&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;commons-beanutils&lt;/groupId&gt;
              &lt;artifactId&gt;commons-beanutils&lt;/artifactId&gt;
              &lt;version&gt;1.9.3&lt;/version&gt;
              &lt;classifier&gt;test-sources&lt;/classifier&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;de.steinwedel.vaadin.addon&lt;/groupId&gt;
              &lt;artifactId&gt;messagebox&lt;/artifactId&gt;
              &lt;version&gt;3.0.19&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.vaadin.addons&lt;/groupId&gt;
              &lt;artifactId&gt;stackpanel-extension-for-vaadin&lt;/artifactId&gt;
              &lt;version&gt;1.0.1&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;net.sf.jasperreports&lt;/groupId&gt;
              &lt;artifactId&gt;jasperreports&lt;/artifactId&gt;
              &lt;version&gt;6.4.0&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;net.sf.jasperreports&lt;/groupId&gt;
              &lt;artifactId&gt;jasperreports-fonts&lt;/artifactId&gt;
              &lt;version&gt;6.0.0&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;mysql&lt;/groupId&gt;
              &lt;artifactId&gt;mysql-connector-java&lt;/artifactId&gt;
              &lt;version&gt;8.0.13&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.apache.poi&lt;/groupId&gt;
              &lt;artifactId&gt;poi&lt;/artifactId&gt;
              &lt;version&gt;3.10.1&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;com.itextpdf&lt;/groupId&gt;
              &lt;artifactId&gt;itextpdf&lt;/artifactId&gt;
              &lt;version&gt;5.5.13&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.vaadin.addons&lt;/groupId&gt;
              &lt;artifactId&gt;exporter&lt;/artifactId&gt;
              &lt;version&gt;1.0.0&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.vaadin.addons&lt;/groupId&gt;
              &lt;artifactId&gt;vaadin-scrollable-panel&lt;/artifactId&gt;
              &lt;version&gt;1.0.2&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;com.mobiwms.printnode.api&lt;/groupId&gt;
              &lt;artifactId&gt;PrintNode-Java&lt;/artifactId&gt;
              &lt;version&gt;1.0.1&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.vaadin.addons&lt;/groupId&gt;
              &lt;artifactId&gt;vaadin-excel-exporter&lt;/artifactId&gt;
              &lt;version&gt;1.0.8&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.vaadin.patrik&lt;/groupId&gt;
              &lt;artifactId&gt;GridFastNavigation&lt;/artifactId&gt;
              &lt;version&gt;1.1.8&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
              &lt;artifactId&gt;slf4j-api&lt;/artifactId&gt;
              &lt;version&gt;1.7.25&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
              &lt;artifactId&gt;slf4j-jdk14&lt;/artifactId&gt;
              &lt;version&gt;1.7.25&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.jooq&lt;/groupId&gt;
              &lt;artifactId&gt;jooq&lt;/artifactId&gt;
              &lt;version&gt;${jooq.version}&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.jooq&lt;/groupId&gt;
              &lt;artifactId&gt;jooq-meta&lt;/artifactId&gt;
              &lt;version&gt;${jooq.version}&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;com.mobiwms&lt;/groupId&gt;
              &lt;artifactId&gt;jooq-model&lt;/artifactId&gt;
              &lt;version&gt;1.0.2&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;!--    
          &lt;dependency&gt;
              &lt;groupId&gt;com.vaadin&lt;/groupId&gt;
              &lt;artifactId&gt;grid-renderers-collection-addon&lt;/artifactId&gt;
              &lt;version&gt;1.2.4&lt;/version&gt;
          &lt;/dependency&gt;
          --&gt;
      &lt;/dependencies&gt;
  
      &lt;scm&gt;
          &lt;connection&gt;scm:svn:http://127.0.0.1/dummy&lt;/connection&gt;
          &lt;developerConnection&gt;scm:svn:https://127.0.0.1/dummy&lt;/developerConnection&gt;
          &lt;tag&gt;HEAD&lt;/tag&gt;
          &lt;url&gt;http://127.0.0.1/dummy&lt;/url&gt;
      &lt;/scm&gt;
      &lt;build&gt;
          &lt;resources&gt;
              &lt;resource&gt;
                  &lt;directory&gt;src/main/resources&lt;/directory&gt;
                  &lt;filtering&gt;true&lt;/filtering&gt;
                  &lt;includes&gt;
                      &lt;include&gt;**/config.properties&lt;/include&gt;
                  &lt;/includes&gt;
              &lt;/resource&gt;
              &lt;resource&gt;
                  &lt;directory&gt;src/main/resources&lt;/directory&gt;
                  &lt;filtering&gt;false&lt;/filtering&gt;
                  &lt;excludes&gt;
                      &lt;exclude&gt;**/config.properties&lt;/exclude&gt;
                  &lt;/excludes&gt;
              &lt;/resource&gt;
          &lt;/resources&gt;
  
          &lt;plugins&gt;
              &lt;plugin&gt;
                  &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                  &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
                  &lt;version&gt;3.3&lt;/version&gt;
              &lt;/plugin&gt;
              &lt;plugin&gt;
                  &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                  &lt;artifactId&gt;maven-resources-plugin&lt;/artifactId&gt;
                  &lt;version&gt;2.6&lt;/version&gt;
              &lt;/plugin&gt;
              &lt;plugin&gt;
                  &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                  &lt;artifactId&gt;maven-war-plugin&lt;/artifactId&gt;
                  &lt;version&gt;2.3&lt;/version&gt;
                  &lt;configuration&gt;
                      &lt;failOnMissingWebXml&gt;false&lt;/failOnMissingWebXml&gt;
                      &lt;!-- Exclude some unnecessary files generated by the GWT compiler. --&gt;
                      &lt;!-- 
                      &lt;packagingExcludes&gt;WEB-INF/classes/VAADIN/gwt-unitCache/**,
                          WEB-INF/classes/VAADIN/widgetsets/WEB-INF/**,
                          WEB-INF/lib/*.jar&lt;/packagingExcludes&gt;
                      --&gt; 
                      &lt;packagingExcludes&gt;WEB-INF/classes/VAADIN/gwt-unitCache/**,
                          WEB-INF/classes/VAADIN/widgetsets/WEB-INF/**&lt;/packagingExcludes&gt;
                  &lt;/configuration&gt;
              &lt;/plugin&gt;
              &lt;plugin&gt;
                  &lt;groupId&gt;com.vaadin&lt;/groupId&gt;
                  &lt;artifactId&gt;vaadin-maven-plugin&lt;/artifactId&gt;
                  &lt;version&gt;${vaadin.plugin.version}&lt;/version&gt;
                  &lt;configuration&gt;
                      &lt;extraJvmArgs&gt;-Xmx512M -Xss1024k&lt;/extraJvmArgs&gt;
                      &lt;webappDirectory&gt;${basedir}/target/classes/VAADIN/widgetsets&lt;/webappDirectory&gt;
                      &lt;draftCompile&gt;false&lt;/draftCompile&gt;
                      &lt;compileReport&gt;false&lt;/compileReport&gt;
                      &lt;style&gt;OBF&lt;/style&gt;
                      &lt;strict&gt;true&lt;/strict&gt;
                  &lt;/configuration&gt;
                  &lt;executions&gt;
                      &lt;execution&gt;
                          &lt;goals&gt;
                              &lt;goal&gt;update-theme&lt;/goal&gt;
                              &lt;goal&gt;update-widgetset&lt;/goal&gt;
                              &lt;goal&gt;compile&lt;/goal&gt;
                              &lt;!-- Comment out compile-theme goal to use on-the-fly theme compilation --&gt;
                              &lt;goal&gt;compile-theme&lt;/goal&gt;
                          &lt;/goals&gt;
                      &lt;/execution&gt;
                  &lt;/executions&gt;
              &lt;/plugin&gt;
              &lt;plugin&gt;
                  &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                  &lt;artifactId&gt;maven-source-plugin&lt;/artifactId&gt;
                  &lt;version&gt;2.4&lt;/version&gt;
              &lt;/plugin&gt;
              &lt;plugin&gt;
                  &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                  &lt;artifactId&gt;maven-clean-plugin&lt;/artifactId&gt;
                  &lt;version&gt;2.6.1&lt;/version&gt;
                  &lt;!-- Clean up also any pre-compiled themes --&gt;
                  &lt;configuration&gt;
                      &lt;filesets&gt;
                          &lt;fileset&gt;
                              &lt;directory&gt;src/main/webapp/VAADIN/themes&lt;/directory&gt;
                              &lt;includes&gt;
                                  &lt;include&gt;**/styles.css&lt;/include&gt;
                                  &lt;include&gt;**/styles.scss.cache&lt;/include&gt;
                              &lt;/includes&gt;
                          &lt;/fileset&gt;
                      &lt;/filesets&gt;
                  &lt;/configuration&gt;
              &lt;/plugin&gt;
  
              &lt;!-- The Jetty plugin allows us to easily test the development build by
                  running jetty:run on the command line. --&gt;
              &lt;plugin&gt;
                  &lt;groupId&gt;org.eclipse.jetty&lt;/groupId&gt;
                  &lt;artifactId&gt;jetty-maven-plugin&lt;/artifactId&gt;
                  &lt;version&gt;${jetty.plugin.version}&lt;/version&gt;
                  &lt;configuration&gt;
                      &lt;scanIntervalSeconds&gt;2&lt;/scanIntervalSeconds&gt;
                  &lt;/configuration&gt;
              &lt;/plugin&gt;
  
  &lt;!--            &lt;plugin&gt;
                  &lt;groupId&gt;org.jooq&lt;/groupId&gt;
                  &lt;artifactId&gt;jooq-codegen-maven&lt;/artifactId&gt;
                  &lt;version&gt;${jooq.version}&lt;/version&gt;
  
                  The plugin should hook into the generate goal
                  &lt;executions&gt;
                      &lt;execution&gt;
                          &lt;goals&gt;
                              &lt;goal&gt;generate&lt;/goal&gt;
                          &lt;/goals&gt;
                      &lt;/execution&gt;
                  &lt;/executions&gt;
  
                  &lt;dependencies/&gt;
  
                  &lt;configuration&gt;
                      &lt;jdbc&gt;
                          &lt;driver&gt;${jdbc.driver}&lt;/driver&gt;
                          &lt;url&gt;${jdbc.url}&lt;/url&gt;
                          &lt;user&gt;${jdbc.user}&lt;/user&gt;
                          &lt;password&gt;${jdbc.password}&lt;/password&gt;                       
                      &lt;/jdbc&gt;
  
                      &lt;generator&gt;
                          &lt;database&gt;
                              &lt;name&gt;org.jooq.util.mysql.MySQLDatabase&lt;/name&gt;
  
                              All elements that are generated from your schema (A Java regular expression.
                                  Use the pipe to separate several expressions) Watch out for
                                  case-sensitivity. Depending on your database, this might be
                                  important!
  
                                  You can create case-insensitive regular expressions using this syntax: (?i:expr)
  
                                  Whitespace is ignored and comments are possible.
  
                              &lt;includes&gt;sku&lt;/includes&gt;
  
                              All elements that are excluded from your schema (A Java regular expression.
                                  Use the pipe to separate several expressions). Excludes match before
                                  includes, i.e. excludes have a higher priority                          
                              &lt;excludes&gt;&lt;/excludes&gt;
  
                              The schema that is used locally as a source for meta information. This 
                                  could be your development schema or the production schema, etc This cannot 
                                  be combined with the schemata element. If left empty, jOOQ will generate 
                                  all available schemata. See the manual's next section to learn how to generate 
                                  several schemata                            
                              &lt;inputSchema&gt;tsm&lt;/inputSchema&gt;
                          &lt;/database&gt;
                          &lt;target&gt;
                              &lt;packageName&gt;com.mobiwms.jooq.model&lt;/packageName&gt;
                              &lt;directory&gt;target/generated-sources/jooq&lt;/directory&gt;
                          &lt;/target&gt;
                      &lt;/generator&gt;
                  &lt;/configuration&gt;
              &lt;/plugin&gt; --&gt;           
              &lt;!-- 
              &lt;plugin&gt;
                  &lt;groupId&gt;org.jvnet.jaxb2.maven2&lt;/groupId&gt;
                  &lt;artifactId&gt;maven-jaxb2-plugin&lt;/artifactId&gt;
                  &lt;version&gt;0.13.1&lt;/version&gt;
                  &lt;executions&gt;
                      &lt;execution&gt;
                          &lt;goals&gt;
                              &lt;goal&gt;generate&lt;/goal&gt;
                          &lt;/goals&gt;
                      &lt;/execution&gt;
                  &lt;/executions&gt;
                  &lt;configuration&gt;
                      &lt;schemaDirectory&gt;src/main/resources/dtd&lt;/schemaDirectory&gt;
                      &lt;schemaLanguage&gt;DTD&lt;/schemaLanguage&gt;
                  &lt;/configuration&gt;                
              &lt;/plugin&gt;
              --&gt;
              &lt;!-- 
              &lt;plugin&gt;
                  &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
                  &lt;artifactId&gt;buildnumber-maven-plugin&lt;/artifactId&gt;
                  &lt;version&gt;1.4&lt;/version&gt;
                  &lt;executions&gt;
                      &lt;execution&gt;
                          &lt;id&gt;buildnumber&lt;/id&gt;
                          &lt;phase&gt;validate&lt;/phase&gt;
                          &lt;goals&gt;
                              &lt;goal&gt;create&lt;/goal&gt;
                          &lt;/goals&gt;
                      &lt;/execution&gt;
                  &lt;/executions&gt;
                  &lt;configuration&gt;
                      &lt;format&gt;{0,number}&lt;/format&gt;
                      &lt;items&gt;
                          &lt;item&gt;buildNumber&lt;/item&gt;
                      &lt;/items&gt;                    
                      &lt;doCheck&gt;false&lt;/doCheck&gt;
                      &lt;doUpdate&gt;false&lt;/doUpdate&gt;
                      &lt;revisionOnScmFailure&gt;unknownbuild&lt;/revisionOnScmFailure&gt;   
                  &lt;/configuration&gt;
              &lt;/plugin&gt;           
              --&gt;
          &lt;/plugins&gt;
          &lt;!--
          &lt;finalName&gt;${project.artifactId}-${project.version}.${buildNumber}&lt;/finalName&gt;
          --&gt;
      &lt;/build&gt;
  
      &lt;profiles&gt;
          &lt;profile&gt;
              &lt;!-- Vaadin pre-release repositories --&gt;
              &lt;id&gt;vaadin-prerelease&lt;/id&gt;
              &lt;activation&gt;
                  &lt;activeByDefault&gt;false&lt;/activeByDefault&gt;
              &lt;/activation&gt;
  
              &lt;repositories&gt;
                  &lt;repository&gt;
                      &lt;id&gt;vaadin-prereleases&lt;/id&gt;
                      &lt;url&gt;http://maven.vaadin.com/vaadin-prereleases&lt;/url&gt;
                  &lt;/repository&gt;
              &lt;/repositories&gt;
              &lt;pluginRepositories&gt;
                  &lt;pluginRepository&gt;
                      &lt;id&gt;vaadin-prereleases&lt;/id&gt;
                      &lt;url&gt;http://maven.vaadin.com/vaadin-prereleases&lt;/url&gt;
                  &lt;/pluginRepository&gt;
              &lt;/pluginRepositories&gt;
          &lt;/profile&gt;
      &lt;/profiles&gt;
  
  &lt;/project&gt;
  </code></pre>