On Thu 2013-11-28 10:45, Gunnar Morling wrote:
2013/11/28 Emmanuel Bernard <emmanuel(a)hibernate.org>
> a. Provide a -Dminimal flag to run in case 1.
>
You still would have to specify the backend you want to build, right? How
would such flag be used then?
Not that would be to build all backends. That's use case #2.
That's how I cover that case:
mvn clean install -pl {couchdb|mongodb|...}
This is fast as there is no docs, dist etc. included in these modules. To
optionally also build core I do:
mvn clean install -pl {couchdb|mongodb|...} -am (for _a_lso _m_aking
dependencies)
Would a custom flag improve upon this?
This does cover case #1.
My personal problem is 1. I can't remember that it's pl / am. And when I
do, I can't remember what pl does vs am.
I guess if maven had some autocompletion logic I might be less
concerned.
b. Provide a -Dcomplete flag to run in case 3.
>
We might do that.
One shortcoming in Maven is though that one - afaik - can't enable profiles
using several properties. So having -Dcomplete (or -DskipAllExpensive if we
want to default the other way around) would mean that we can't skip single
things specifically (e.g. only skip docs). If we're ok with loosing that
granular level of control we can try that.
Ah, yes that sucks.
> c. Provide a script to do 2. I suspect case 2. can only be done with a
> custom script or by moving to Gradle. For various reasons, I don't want
> us to move to Gradle at this stage.
>
How about
d. Use an alias for all skip options:
export mvnFast = "mvn -DskipITs -DskipDocs -DskipDistro"
This gives a quick build in one command and still allows for fine
granularity if needed.
That's ok for case #2. But not #1.
> Everyone OK with doing a. and b.
> The problem with c. is that making a cross platform script requires time
> but we could make it work for us at least.
>
> Note that this leaves open what 'mvn clean install' should do.
>
To me it should include everything by default (hence I'd prefer
-DskipAllExpensive over -Dcomplete) but if a majority of you guys prefer
another behavior I'd adapt.
The concern I have is someone cloning OGM and getting a BUILD FAILED in
his face. That's not even mentioning the 2.3km of logs to dig into to
figure out why.
I guess I'll have to go for a custom script...