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 <[email protected]> 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 <[email protected]> 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, <[email protected]> / http://about.me/aldrinleal
> >
> > On Tue, Jan 24, 2017 at 12:05 AM, Paul Hammant <[email protected]>
> 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.
> > >
> >
>