maven-shade-plugin

after that I have no clue

Sent from my [rhymes with myPod] ;-)

On 18 Jun 2009, at 18:23, Timothy Orme <to...@genome.med.harvard.edu> wrote:

Great, thanks for the tips! However, I'm unfamiliar with what you mean by shading and moving it into a different tree and googling for it seems to be difficult. Can you elaborate on what this means or point me to an article?

Thanks,
Tim O

Stephen Connolly wrote:
what you probably need to do is shade flying saucer and it's iText
dependency into a different package tree.  That way it will be
separated from the iText your app is using...
The other solution is to run inside a OSGi container, as you could
define in the bundle manifests that Flying Saucer must use 2.0.8 and
your app must use 2.1.3.
OSGi will then take care of managing the classloaders for you.
Unfortunately in a standard web container, the classloader is what it
is, which means that whatever class comes first is the class that gets loaded... which is one of the reasons people resort to shading or OSGi
2009/6/18 Timothy Orme <to...@genome.med.harvard.edu>:
Hello,

      I have a JAR and a WAR.

My JAR file is used to render PDF files using the Flying Saucer Project. When used in this way, flying saucer requires iText 2.0.8 to be
included.
      So the POM file for my JAR has 2 dependencies:

      org.xhtmlrenderer : core-renderer : R8pre2 : jar : compile
      com.lowagie : itext : 2.0.8 : jar : compile

My WAR file then includes this JAR and makes calls to it to have PDF's generated. However, the WAR file itself also includes some legacy functionality to generate some other PDF's. However, it requires iText
2.1.3. So my WAR has 2 dependencies:

      jarA : jarA : 1.0 : jar : compile
      com.lowagie : itext : 2.1.3 : jar : compile

The problem then, is that when I try and make calls from my WAR to methods in that JAR, it seems that it uses iText 2.1.3 instead of 2.0.8, so
it breaks because some methods are missing.

Everything works as it should when I just use the JAR itself, through
JUnit.

I cannot upgrade Flying Saucer to use 2.1.3 and it would take a great deal of work to downgrade the WAR to use 2.0.8. My question then, is there a way for me to specify in Maven that the iText 2.0.8 be somehow packaged up with the JAR so that all methods in it use 2.0.8, but anything in the war
would use 2.1.3?

Thanks,
Tim O.


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


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


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


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

Reply via email to