title: What is the difference between gradlew assemble and gradlew compile
body: <p>I noticed that</p>
  
  <pre><code>./gradlew tasks
  </code></pre>
  
  <p>for my android project gives me <code>assemble*</code> and <code>compile*</code> tasks.</p>
  
  <p>What is the difference?</p>
  
  <p>I also noticed that the command lists the tasks <code>compileDemoDebugSources</code> as well as <code>compileDemoReleaseSources</code> (where <code>demo</code> is a flavor and <code>release</code> is a build type) but only <code>assembleDemo</code> (instead of <code>assembleDemoDebug</code> and <code>assembleDemoRelease</code>) -- however the latter two work just as fine. Why is that?</p>