When should we use android.arch.lifecycle:compiler (or android.arch.lifecycle:common-java8)? : <p>Currently, we are using <code>LiveData</code>, <code>ViewModel</code> and <code>Room</code> in our project.</p>

<p>We are using Java 8.</p>

<p>We use the following in <code>build.gradle</code></p>

<pre><code>// ViewModel and LiveData
implementation "android.arch.lifecycle:extensions:1.1.1"

// Room (use 1.1.0-beta1 for latest beta)
implementation "android.arch.persistence.room:runtime:1.0.0"
annotationProcessor "android.arch.persistence.room:compiler:1.0.0"
</code></pre>

<p>I was wondering, when do we need to use</p>

<pre><code>annotationProcessor "android.arch.lifecycle:compiler:1.1.1"
</code></pre>

<p>(Or <code>implementation "android.arch.lifecycle:common-java8:1.1.1"</code> since we are using Java 8?!)</p>

<p>Currently, our code works fine, without using <code>lifecycle:compiler</code> or <code>lifecycle:common-java8</code>.</p>
