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.
> > >
> >
>

Reply via email to