I’m working on a multi-project, and right now I have a structure that resembles this (actually there are a couple of jar projects and a couple of war projects)
/myProj
|_______projA (jar)
| |____pom.xml
| |____target/jar files
|_______projB (war)
| |___pom.xml
| |___web-inf/lib/jarfiles
|_______projEar
| |___pom.xml
|___pom.xml
What I want to achieve, is to make projA and projB to read their dependences from a common shared folder, instead of keeping their own copy.
Actually, I don’t really care where they read them from at compile time, but when I package my EAR file, I want each jar/war to appear just once, hence reducing the EAR size.
I’ve tried declaring the dependencies on the parent pom, declaring the dependencies as and some other things, but so far I haven’t achieved this.
Is there an easy way to achieve this? Any simple maven plugin?
Thanks in advance.
You should be able to do this by adding the JAR as a dependency to your EAR’s pom.xml:
…and specifying the dependency as provided in your WARs’ pom.xml:
If Maven/other tooling has already copied the JAR to your
WEB-INF/libdirectory, you may need to delete the file manually prior to rebuilding.This should result in an EAR of the form: