terça-feira, 29 de dezembro de 2020

Android+Gradle: Depreciação da configuração de dependência

Não sei exatamente quando, mas retomando um projeto, eu me deparei diversos avisos como esse:

"Configuration 'androidTestCompile' is obsolete and has been replaced with 'androidTestImplementation' and 'androidTestApi'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html"

Então foi que eu fiz, visitei o link, mas como temos alguns artigos que fiz, então vamos ver o que precisei mudar e o que recomendo.

Bem, vamos começar com a mensagem acima: o comando "androidTestCompile" vai ser substituído pelo "androidTestImplementation" e "androidTestApi". Entretanto, é curioso porque uma outra mensagem é a seguinte:

"Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html"
Bem, agora só sobrou nós utilizarmos "androidTestImplementation".

A próxima mensagem é a seguinte:
"Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html"
Essa mensagem aparece quando usamos uma biblioteca externa, mas qual é a diferença? Quando você usa "implementation", você está garantindo o encapsulamento da biblioteca, enquanto que a "api" permite visualizar e manipular arquivos internos. Dica de ouro? Troque para "implementation" em aplicativos em geral e aprenda a respeitar o encapsulamento, pois se está privado, é porque você não deve mexer com tais objetos. Se você está mexendo com bibliotecas para ser distribuído, use "api".

Ah! Existe uma terceira possibilidade para substituir o "compile" que é "annotationProcessor", use-o quando você quer utilizar uma biblioteca de anotações.


Nenhum comentário:

Postar um comentário