Qual é a relação / diferença entre sourceCompatibility
e 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 targetCompatibility
irá gerar bytecode java que é compatível com uma versão específica do Java, este é um subconjunto da funcionalidade de sourceCompatibility
?