On 3 July 2012 15:55, Dmitry Trunikov <dmitry.truni...@zoral.com.ua> wrote:

> Hi All,
>
> It seems that my question has an obvious answer. Unfortunately googling
> didn't give me a good one.
>
> Prerequisites:
>
> I have a classical multi-module project. The root POM declares two
> modules: 'api' and 'impl'.
> These modules have references to the parent.
> The module 'api' contains definition of an interface.
> The module 'impl' has dependency on 'api' and a class which implements the
> interface.
>
> Issue:
>
> In the top directory I run a reactor build:
>
> [First build]
> $ mvn clean compile
>
> The build finished with success.
> Then I made changes in the interface declaration in the module 'api'
> (added a new method) and run build again:
>
> [Second build]
> $ mvn compile
>
>
javac will only recompile classes that have changed. it does not do
dependency analysis, so a breaking change will only cause a compile failure
until you do clean


> The build finished with success again. It is strange because I expected
> that build finished with failure because class in the module 'impl' had no
> implementation of the method just added to the interface.
> When I run build with command:
>
> [Third build]
> $ mvn clean compile
>
> It finished, as I expected, with failure.
>
> Question:
>
> Why Maven didn't complain on second build?
>
>
> Thanks for your help,
>
> Dmitry
>

Reply via email to