You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by "Lewis, Eric" <Er...@ipi.ch> on 2013/03/07 14:32:44 UTC

Skinny WAR and SNAPSHOT

Hi

I know a lot has been written about skinny WARs and the problems they represent.

The strategy that we're using is:

- Set dependencies in the web module to scope 'provided', except dependencies that are web-specific (PrimeFaces, ...)
- Set skinnyWars to true in the EAR project


The strategy works very well for releases. But for SNAPSHOTs (we use Maven 3.0.4 with timestamped JARs) we have the problem that the same dependency still exists in both the WAR/WEB-INF/lib and the EAR/lib:

my.ear
  lib
    util-logging-1.13.0-SNAPSHOT.jar
  my-ejb.jar
  my.war
    WEB-INF
      lib
        util-logging-1.13.0-20130305.151315-24.jar


>From my point of view, this is what happens:
- The WAR plugin for my.war resolves all dependencies and puts them into its WEB-INF/lib. For some reason, the JARs contain the timestamp instead of SNAPSHOT in the filename.
- The WAR is deployed to the repo
- The EAR plugin for my.ear gets the my.war and tries to figure out what files are both in its dependencies as well as in the WAR's WEB-INF/lib
- However, since the two filenames of util-logging differ, it's only successful up to a certain extent - anything which is resolved to different filenames leaves me with two JARs.

Am I right with this?

Also, how can I solve the problem with the SNAPSHOTs?
Is there any other way than to force people to always use 'provided' in the web module? (I guess I should write a Maven Enforcer rule for that)

Thanks for any pointers...

Best regards,
Eric

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org