title: In Maven, Why Run 'mvn clean'?
body: <p>I am wondering what the major difference between running <code>mvn compile</code> and <code>mvn clean compile</code> are, in practicality.</p>
  
  <p>I understand what the actual difference is, that <code>mvn clean compile</code> deletes all the generated files and starts again from scratch, but why would we want to do this? I can assume <code>mvn compile</code> will regenerate files if it's necessary, right?</p>
  
  <p>One thing I noticed in my project was that if you had deleted a source file, without running <code>clean</code>, the compiled file remains, which usually wouldn't be a problem, but could be I suppose.</p>