I have a Maven 2 multi-module project and want to be sure everything is taken from my local checked-out source.
- Is it possible to tell Maven to never download anything for the modules it has the source of? Do I have to disable the remote repositories?
- Does Maven always have to go the expensive way of installing a module into the local repository, and then extracting it again for each of its dependents?
- Does Maven automatically first recompile dependencies for a module if their local source changed, and then compile the dependent?
No. Maven 2 only “sees” the current module while it builds. On the plus side, you can build part of the tree by running Maven in a module.
Yes, use the “offline” option
-oor-offline. Or usesettings.xmlwith a proxy that doesn’t have any files. This isn’t what you want, though.Yes but it’s not expensive. During the build, the file is copied (that was expensive ten years ago). When a dependency is used, Maven just adds the path to the file to the Java process. So the file isn’t copied or modified again. Maven assumes that files in the local repository don’t change (or only change once when a download/install happens).
No. There were plans for Maven 3 but I can’t find an option to enable something like that.
To solve your issues, you should install a local proxy (like Nexus).