[ https://issues.apache.org/jira/browse/MNG-5523?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15886627#comment-15886627 ]
Jigar Joshi commented on MNG-5523: ---------------------------------- Interesting read : https://blog.gradle.org/incremental-compiler-avoidance > support actual incremental build > -------------------------------- > > Key: MNG-5523 > URL: https://issues.apache.org/jira/browse/MNG-5523 > Project: Maven > Issue Type: Improvement > Components: Bootstrap & Build, Performance > Reporter: Jigar Joshi > Attachments: parent.zip > > > h2. Background: > We have project structure of around 200 project in the maven tree, every > single build takes around 13 minute of time (clean, compile, test install, > deploy) > With current version of maven {{3.1}}, you can skip clean phase and it will > do incremental build, which is not bullet proof incremental build actually > h2. Problem example > {code} > ----------root (module) > \ > | > |---foo (jar project) > | > |---bar (jar project, it consumes foo as dependency) > {code} > before > {code} > public class Foo{ > public static void sayHello(){ > System.out.println("hello from foo"); > } > } > public class Bar{ > public static void main(String arg[]){ > Foo.sayHello(); > } > } > {code} > I do {{mvn clean install}} from root module, it would go successful, I launch > the {{main()}} method of {{Bar}} now, it will be succesful > now I modify {{sayHello()}} to > {code} > public static void sayHello(String name){ > System.out.println("hello from foo to " + name); > } > {code} > and I execute {{mvn install}} (incremental build) from root module, it will > still compile and execute successfully because it takes previously built > artifact for {{Foo}} at compile phase, now if I attempt to run it in IDE or > in a packaged build it will fail with > {code} > Exception in thread "main" java.lang.NoSuchMethodError: > {code} > h2. Proposal: > - somewhere in pre execution phase, it needs to calculate the modified > source and artifacts and it should be able to detect all the consumers in > dependency tree (compile, runtime, test all scopes) and flag all the > artifacts to treat as modified and it should re do build for those > - all the maven plugins should support incremental build as well > - plugin needs to be marked to execute incrementally by adding a {{boolean}} > parameter to {{AbstractMOJO}} to declare that plugin execution needs to be > calculated in effective incremental way > - all plugins which are marked as {{incremental}} needs to take the same > approach as mentioned in first point > - also in parallel build when it fans out in multiple threads it should have > knowledge of what plugins to execute effectively > It would be totally useful to have this feature corrected > Some other people who wants this as well > - http://stackoverflow.com/questions/6281699/maven-incremental-building > - > http://stackoverflow.com/questions/8918165/does-maven-support-incremental-builds > *Also See* > - http://jira.codehaus.org/browse/MCOMPILER-213 > - > http://blog.jetbrains.com/teamcity/2012/03/incremental-building-with-maven-and-teamcity/ > Thanks! > Jigar -- This message was sent by Atlassian JIRA (v6.3.15#6346)