On Sep 1, 2012, at 6:21 AM, Mark Struberg wrote: > Hi! > > > While doing further research on the incremental build I came accross the > org.sonatype.plexus.build.incremental.BuildContext. > > There are a few things around this class which caught my interrest. > > 1.) This class has a package org.sonatype, the artifact name groupId > org.codehaus.plexus and the project in git is sisu-build-api. > Quite confusing...
Hence we haven't really published anything. As you will discover incremental builds, or build avoidance as we've been calling it, when taking into consideration all tools and contexts is hard. The most advanced form of build avoidance exists in m2e has much of the implementation bits required. But obviously we don't want any tools depending on m2e. Like Maven depending on m2e isn't acceptable. The latest of our work is here: https://github.com/etesla/tesla-build-avoidance It works but it's not complete, the API is not where we want it and there are a couple branches there too. We have proven we can make plugins just work in m2e which is a primary goal. The current changes that Igor has experimented with in the core are here: https://github.com/etesla/maven-3/tree/build-context-injection And the m2e work is here: https://github.com/etesla/m2e-core But he doesn't particularly like it. So we don't even like all the ideas or implementations but it's been there for a long time. Initially started by Benjamin, Igor picked up the work and now Igor and I are looking at it again in the context of continuous delivery. But it is confusing because we're still not entirely clear on how we would like it to work but currently we feel using the concept of something like an Eclipse workspace. This idea can work in many tools. I'm not only interested in Maven. I also don't want to go puttering around in the core because I believe that with some very tiny changes experiments can be done in a simple say. One, maybe two injection sites and a custom scope and anything is possible. > > 2.) This replaced our internal scanning. What wonders me a bit is that the > DefaultBuildContext always returns true for hasDelta(). Not sure about the > original impl, but thiw might need to get changed if we like to support > incremental builds. The problematic code can be found in > DefaultMavenResourcesFiltering. Not sure if this got used somewhere else as > well. > > 3.) Having the BuildContext API in a m2eclipse related package is not exactly > wise imo. This makes m2eclipse depending on maven and maven depending on > m2eclipse. As Anders pointed there is no dependency on m2e. And if we do take code from m2e, which we will because it's the most advance/proven build avoidance code there is, then we would extract it. > > > Wdyt? How to proceed? I suggest just looking around the code. Once the JSR-330 branch is merged then it might be easier to play around with. I have no doubt it can be implemented because it has been effectively done in m2e for years. But making it accessible, and making an API that will stand the test of time is what I'm interested in, and I'm also keen on trying to make this available to other systems. By this I don't mean Tesla but other tools like SBT, Gradle, Leiningen, Hudson, and Jenkins because they all have the similar requirements for build avoidance. > > > > LieGrue, > strub > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org > For additional commands, e-mail: dev-h...@maven.apache.org > Thanks, Jason ---------------------------------------------------------- Jason van Zyl Founder & CTO, Sonatype Founder, Apache Maven http://twitter.com/jvanzyl --------------------------------------------------------- I never make the mistake of arguing with people for whose opinions I have no respect. -- Edward Gibbon