> My new maven project structure will be :
>
> .
>  | -- pom.xml (parent pom)
>  | -- pom-war.xml (inherits from parent, generates a war)
>  | -- pom-jar.xml (inherits from parent, generates a jar)
>
> There are no modules in the project. All poms are going to be in the
> root path of the project.
>

Wrong!
You should create two modules; one for the jar project and one for the war
project. Follow the Maven standards and you can use any of the many
examples of this on the Internet.
I believe we haven't pushed the mantra for some time now, so here it comes:
Don't fight Maven!

/Anders


>
> 1. Any examples on how to write the parent pom referencing the same
> codebase for the child poms.
> Will there be a <module> tag for parent pom.  I understand that the
> packaging for parent pom will be "pom".
>
> 2. The child poms will have <relativePath> in <parent> tag as
> ./pom.xml. Please correct me if this is wrong.
>
> Thanks
> Narayanan
>
>
>
>
>
> Narayanan
>
> On Tue, Apr 22, 2014 at 12:38 AM, Stephen Connolly
> <[email protected]> wrote:
> > On 22 April 2014 01:18, Narayanan K <[email protected]> wrote:
> >
> >> Hi
> >>
> >> We have a default pom file with packaging "war" for our codebase.
> >>
> >> From the same code base we also want to generate a normal jar and a
> >> fat jar with dependencies.
> >>
> >> Currently solution that has been implemented is another pom-jar.xml
> >> file that has the packaging as jar and maven-assembly-plugin to
> >> generate the jar with dependencies. We use mvn install -f pom-jar.xml.
> >>
> >> But we are in a situation where if any new dependency is added to
> >> pom.xml, we need to add to pom-jar.xml as well as it is the same
> >> codebase.
> >>
> >> To avoid this we thought of couple of solutions -
> >>
> >> 1. Add maven-jar-plugin and maven-assembly-plugin to the default pom
> >> with packaging war - so it generates a war file, a normal jar file and
> >> fat jar out of the same pom. So we can do away with the pom-jar.xml.
> >>
> >> Not sure if this is a good solution. We tried this, but this is
> >> working well only in maven 3.0.4. The assembly plugin is not working
> >> well with Maven 2 (which is in our build environment) while generating
> >> the fat jar.
> >>
> >> 2. Have a parent pom and put all the dependencies and plugins in that
> >> and have 2 child poms in the same codebase with different names
> >> inherit from parent pom, one that has packaging of war that generates
> >> war file and the other child pom has packaging jar with maven assembly
> >> plugin to generate both normal and fat jar. And all new dependencies
> >> need to be added only to parent pom.
> >>
> >> This solution will make us have 3 pom files in codebase, doesnt look
> >> very elegant,
> >
> >
> > actually depends on your point of view. To me this is the more elegant
> > solution as you clearly see the relationship between inputs (pom.xml) and
> > outputs (artifacts, e.g. jars wars, etc)
> >
> >
> >> but will solve our dependency management issues between
> >> the 2 packaging.
> >>
> >>
> >> Are these good solutions? Is there any other good solution available
> >> for this scenario ?
> >>
> >>
> >> Regards
> >> Narayanan
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [email protected]
> >> For additional commands, e-mail: [email protected]
> >>
> >>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to