Qual é a relação / diferença entre sourceCompatibilitye targetCompatibility? O que acontece quando eles são definidos com valores diferentes?
De acordo com a documentação da Gradle :
sourceCompatibilityé "Compatibilidade da versão Java a ser usada ao compilar a origem Java".
targetCompatibilityé "versão Java para a qual gerar classes".
Meu entendimento é que targetCompatibilityirá gerar bytecode java que é compatível com uma versão específica do Java, este é um subconjunto da funcionalidade de sourceCompatibility?