Please do no do it this way. You will have a very sub-optimal Maven
experience if you do it this way. In short you are picking a fight with
Maven... you might have won a battle... but Maven is very opinionated and
when you pick a fight with it... expect a phone call from Maven...

"I don't know who you are. I don't know what you want. If you are looking
for ransom, I can tell you I don't have money. But what I do have are a
very particular set of opinions; opinions I have acquired over a decade of
existence. Opinions that make me a nightmare for people like you. If you
follow the Maven way now, that'll be the end of it. I will not look for
you, I will not pursue you. But if you don't, I will look for you, I will
find you, and I will kill you." https://www.youtube.com/watch?v=OxBH05hcifw

Maven always wins in the end!




On 23 April 2014 05:15, Narayanan K <[email protected]> wrote:

> Hi Anders
>
> The codebase is the same. So having 2 separate directories (for
> modules) and pom in each of them is not required right ?
>
> I can have <modules> in parent pom to specify the 2 child poms that
> are present in the same project level. Tried below and seems it is
> working.
>
> parent pom will have :
>
> <modules>
>   <module>pom-war.xml</module>
>   <module>pom-jar.xml</module>
> <modules>
>
> In both child poms,
>
> <parent>
> <relativePath>./pom-parent.xml</relativePath>
> </parent>
>
> Currently including the jar artifact dependency in war project cannot
> be done due to some restrictions in our development.
>
> Narayanan
>
> On Tue, Apr 22, 2014 at 11:37 AM, Anders Hammar <[email protected]> wrote:
> >> 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]
> >>
> >>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to