Yep I hear you.

We cannot change the 4.0.0 schema

And changing to a new modelVersion requires ensuring that we can evolve
without breaking consumers of the older model.

Basically we have one chance to make a "breaking" change to something that
allows us to evolve going forward

So what I provided was the 4.0.0 modelVersion solution... it's ugly but
does not require pre-processing or generation of the pom

On Tue 24 Jan 2017 at 12:53, Paul Hammant <p...@hammant.org> wrote:

> Versus profiles, I would rather have pom.xml exhaustively renamed to
>
> pom.xml.template in SCM, and a Python script to generate <modules/> as we
>
> have it today (pom.xml marked as .gitignore) before invoking 'maven
> install'
>
>
>
> - Paul
>
>
>
>
>
> On Tue, Jan 24, 2017 at 7:31 AM, Stephen Connolly <
>
> stephen.alan.conno...@gmail.com> wrote:
>
>
>
> > It's an interesting idea for model version 5.0.0 to consider.
>
> >
>
> > At present, I would handle it by using profiles with activation to pull
> in
>
> > the modules:
>
> >
>
> > if your activation in the root is based on the presence of the module's
>
> > pom.xml then it will only add the module if you checked it out: (approx
>
> > structure and I do not have the XSD to hand)
>
> >
>
> > <profile>
>
> >   <id>module-foo</id>
>
> >   <activation>
>
> >     <file>module-foo/pom.xml</file>
>
> >   </activation>
>
> >   <modules>
>
> >     <module>module-foo</module>
>
> >   </modules>
>
> > </profile>
>
> > <profile>
>
> >   <id>module-bar</id>
>
> >   <activation>
>
> >     <file>module-bar/pom.xml</file>
>
> >   </activation>
>
> >   <modules>
>
> >     <module>module-bar</module>
>
> >   </modules>
>
> > </profile>
>
> >
>
> > Yes that becomes an ugly pom, but it will do what you want when run from
>
> > the root and I have used it before
>
> >
>
> > HTH
>
> >
>
> > On 24 January 2017 at 11:14, Paul Hammant <p...@hammant.org> wrote:
>
> >
>
> > > i thought about that too, except that in a monorepo situation, I don't
>
> > want
>
> > > the don't want the changed pom to get pushed back in a commit, and I
>
> > don't
>
> > > want one of the those changelists in my IDE labeled "do not commit" to
>
> > > facilitate that.
>
> > >
>
> > > Rationale: Just because I've subset my checkout/clone doesn't mean that
>
> > all
>
> > > users of the same repo want to.
>
> > >
>
> > > It was implied, but I'll call it out:  .full-module-list.txt is in
>
> > > .gitignore (etc), and that it's easily regenerate per the 'find'
> command.
>
> > >
>
> > > Regards,
>
> > >
>
> > > - Paul
>
> > >
>
> > > On Tue, Jan 24, 2017 at 12:50 AM, Aldrin Leal <ald...@leal.eng.br>
>
> > wrote:
>
> > >
>
> > > > Actually, I always wondered if it was interesting to have a tool to
>
> > allow
>
> > > > the modification of POM files from Command Line. Like setting a
>
> > property,
>
> > > > adding a dependency and/or, as you exposed, changing modules.
>
> > > >
>
> > > > --
>
> > > > -- Aldrin Leal, <ald...@leal.eng.br> / http://about.me/aldrinleal
>
> > > >
>
> > > > On Tue, Jan 24, 2017 at 12:05 AM, Paul Hammant <hamm...@apache.org>
>
> > > wrote:
>
> > > >
>
> > > > > OK, so I'm a documenter of Google's Monorepo (one biiiig ass trunk)
>
> > and
>
> > > > > it's usage of shell scripts to subset the checkout for speedy
>
> > > > development:
>
> > > > >
>
> > > > >    http://paulhammant.com/2014/01/06/googlers-subset-their-trunk/
>
> > > > >    https://trunkbaseddevelopment.com/monorepos/
>
> > > > >
>
> > > > > For Maven to be used with a scripted use of Subversion or Git's
>
> > > > > sparse-checkout (or Perforce's client spec), it'd been to be more
>
> > like
>
> > > > > Bazel/Blaze or Buck, in that sub-modules are *not* forward
> declared,
>
> > > they
>
> > > > > are discovered/calculated/inferred somehow.
>
> > > > >
>
> > > > > In pom.xml instead of -
>
> > > > >
>
> > > > >   <modules>
>
> > > > >         <module>one</module>
>
> > > > >         <module>two</module>
>
> > > > >    </modules>
>
> > > > >
>
> > > > > We'd need -
>
> > > > >
>
> > > > >   <modules>
>
> > > > >         <search>recursively</search>
>
> > > > >    </modules>
>
> > > > >
>
> > > > > Or -
>
> > > > >
>
> > > > >   <modules>
>
> > > > >         <defined-in>.full-module-list.txt</defined-in>
>
> > > > >         <!-- made by
>
> > > > >               find . -name "pom.xml" | sed 's/\/pom.xml//' >
>
> > > > > .full-module-list.txt
>
> > > > >               after the sparse-checkout modification of working
> copy
>
> > > -->
>
> > > > >    </modules>
>
> > > > >
>
> > > > > Thoughts?
>
> > > > >
>
> > > > > Any questions?
>
> > > > >
>
> > > > > - Paul H
>
> > > > >
>
> > > > > PS - I'm a solid Maven user since 2003.
>
> > > > >
>
> > > >
>
> > >
>
> >
>
> --
Sent from my phone

Reply via email to