[ 
https://issues.apache.org/jira/browse/MNG-5523?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jigar Joshi updated MNG-5523:
-----------------------------
    Attachment: parent.zip

I have tested same scenario as mentioned here 
https://issues.apache.org/jira/browse/MNG-5523?focusedCommentId=15201030&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15201030

and I failed to get compilation failure (i.e. compilation was successful with 
{{mvn install}} and {{mvn -pl=projectb -am -amd install}} attached projects.

{code}
$ mvn --version
Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 
2014-12-14T09:29:23-08:00)
Maven home: /Users/jigar.joshi/tools/apache-maven-3.2.5
Java version: 1.8.0_101, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.12", arch: "x86_64", family: "mac"
{code}

> 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)

Reply via email to