Hi guys,

Wonder why maven doesnt have any daemon and din't find anything satisfying
to answer this question with our preferred search engine.

Idea would be - a bit like gradle I guess - to cache computations and
classloaders.

Asking cause:
- computing the reactor could be long on big projects and if the pom didnt'
change between 2 builds it is useless
- creating a classloader can be long but "filling" it - loadClass -  is
really longer for several plugins - big classloaders or dynamic languages -
and doing it again and again is slow

So the idea would be to run maven as a long running process (transparently
through a -D in mvn opts if possible) and:
- cache all is cacheable like the reactor etc while pom last modified date
didnt change (OS needs to support it or natives could be used for OS where
the JVM doesnt help)
- cache classloaders and reuse them when re-executing a mojo
- the communication between "mvn" which would then be a client to the
daemon could just use a socket

Of course if the pom changed the cache would just be invaildated but we
would still gain the maven boot itself and we can still keep the
classloader cache for plugins while their configuration is the sae
(dependencies).

Last thing missing in my description is two more configurations: a -Dxxx to
kill the daemon and one to skip it for one build.

Any technical/politics reason I miss to not have it?

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber
<http://www.tomitribe.com>

Reply via email to