> -----Original Message----- > From: Stephen Duncan [mailto:[EMAIL PROTECTED] > > But if your IDE, or whatever working environment you use, you treat > each child project as an individual project, not one big project, then > when building P1, you only want to build P1. For those that work this > way (and it's how the IDE plugins work by default),
Well, the IDE plugins don't work this way by default. If you run a maven ide plugin in the top-level directory, then they generate an IDE project that encompasses the entire project, including all the child projects. That's their default behavior. You don't need to do anything special to make this happen. I prefer to have a single IDE project file which encompasses all of the source in the project than to have ten projects open, each of which does not know how to navigate to the source of (or see the javadocs of) the other components of the project. > transitively building would be a waste of time. I'm all for not wasting time. I also don't like to waste time when I go through an edit, build, stop container, start container, deploy to container, start application, navigate to trouble spot, test changes ... only to discover that the changes I made were not picked up by the build. > For my usage, I can't think of a > case I'd ever want this behavior. I can't imagine why. Do you normally depend on transitive dependencies being built for a top-level build? Or do you manually build every child when (you think) it is needed (scary thought). The reason to have the system take care of this to make sure your builds are reliable. For me, a *reliable* build comes ahead of a *fast* build (a "fast" build is inherently useless if it is not reliable). Even so, I think you are overstating the performance hit of a transitive build. First of all, there are project dependencies and then there are third-party dependencies. A transitive build would only have traverse project dependencies and not third-party dependencies. This should markedly reduce the size of the transitive dependency tree. Second, although it's true that maven has to "ask each module" to build itself to see if it is up-to-date, if maven and its plugins implement every reliable performance optimization to ensure that no unnecessary building activity is taking place, then the time to build each module would only be the time needed to do a file-dependency scan. If an artifact (or intermediate artifact) is already newer than the pieces which are used to build it, then no "building" should be taking place: and this should not take an excessive amount of time. Given well-optimized plugins, I imagine that the performance hit would be minimal to process transitive dependencies only for project siblings. But for those who really want this (or really don't), this functionality could be controlled by a command-line switch and make all parties happy. ----------------------------------------- Attention: Any views expressed in this message are those of the individual sender, except where the message states otherwise and the sender is authorized to state them to be the views of any such entity. The information contained in this message and or attachments is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. If you received this in error, please contact the sender and delete the material from any system and destroy any copies. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]