MavenProjectChanges (State newState) { if (myLastReadStamp == 0) return MavenProjectChanges.ALL; MavenProjectChangesBuilder result = new MavenProjectChangesBuilder(); result.setHasPackagingChanges(!Objects.equals(myPackaging, newState.myPackaging)); result.setHasOutputChanges(!Objects.equals(myFinalName, newState.myFinalName) || !Objects.equals(myBuildDirectory, newState.myBuildDirectory) || !Objects.equals(myOutputDirectory, newState.myOutputDirectory) || !Objects.equals(myTestOutputDirectory, newState.myTestOutputDirectory)); result.setHasSourceChanges(!Comparing.equal(mySources, newState.mySources) || !Comparing.equal(myTestSources, newState.myTestSources) || !Comparing.equal(myResources, newState.myResources) || !Comparing.equal(myTestResources, newState.myTestResources)); boolean repositoryChanged = !Comparing.equal(myLocalRepository, newState.myLocalRepository); result.setHasDependencyChanges(repositoryChanged || !Comparing.equal(myDependencies, newState.myDependencies)); result.setHasPluginChanges(repositoryChanged || !Comparing.equal(myPlugins, newState.myPlugins)); result.setHasPropertyChanges(!Comparing.equal(myProperties, newState.myProperties)); return result; }