Introdução ao SDK do Azure e ao Gradle
Este artigo mostra como usar o Gradle para criar aplicativos com o SDK do Azure para Java. Neste artigo, você configura um novo projeto com o Gradle, cria projetos com o Gradle e usa as ferramentas de imagem nativas do GraalVM para criar binários nativos específicos da plataforma.
Pré-requisitos
- Java Developer Kit, versão 8 ou posterior. Recomendamos a versão 17 para a melhor experiência.
- Gradle
Criar um novo projeto Gradle
Ao contrário do Maven, o Gradle não tem um sistema de arquétipo para projetos de bootstrapping em uma forma de modelo. A inicialização de um projeto Gradle é possível, mas não configura o SDK do Azure para especificidades Java como o equivalente do Maven. Para executar as etapas, primeiro use o seguinte comando para criar um novo diretório vazio a partir da linha de comando:
gradle init --type java-application
Você será solicitado a responder a uma pequena série de perguntas, após as quais você terá um diretório contendo uma coleção de arquivos e subdiretórios. Para garantir que os arquivos gerados sejam compilados, execute os seguintes comandos necessários para verificar a compilação:
gradle clean assemble test
Agora você pode passar para a edição do arquivo build.gradle localizado no diretório do aplicativo. Para começar, para simplificar o gerenciamento de versões de dependência, a equipe do SDK do Azure para Java publica a BOM do cliente SDK do Azure para Java todos os meses. Esse arquivo de BOM inclui todos os pacotes de cliente do SDK do Azure para Java Geralmente Disponíveis (GA) com sua versão de dependência compatível.
Para usar versões de dependência para uma biblioteca de cliente do SDK do Azure para Java que está na BOM, inclua o seguinte trecho no arquivo build.gradle do projeto. Substitua o {bom_version_to_target}
espaço reservado pela versão mais recente da lista técnica do SDK do Azure para Java.
dependencies {
implementation platform('com.azure:azure-sdk-bom:{bom_version_to_target}')
}
Você pode encontrar todas as versões da BOM do cliente SDK do Azure para Java em azure-sdk-bom. Recomendamos usar a versão mais recente para aproveitar os recursos mais recentes do SDK do Azure para bibliotecas de cliente Java.
Depois de começar a depender da lista técnica do SDK do Azure para Java, você pode incluir dependências em bibliotecas sem especificar sua versão. Esses valores de versão são pesquisados automaticamente na lista técnica do SDK do Azure para Java. Por exemplo, para incluir uma azure-storage-blob
dependência, adicione as seguintes linhas ao arquivo build.gradle :
dependencies {
implementation 'com.azure:azure-storage-blob'
}
Usar o Gradle para definir dependências de projeto pode tornar o gerenciamento de seus projetos mais simples. Com a lista técnica do SDK do Azure, você pode acelerar seu projeto e, ao mesmo tempo, ter mais confiança sobre o controle de versão de dependência a longo prazo. Recomendamos usar a BOM para manter as dependências alinhadas e atualizadas.
Incluir um pacote que não esteja na lista técnica
A BOM do cliente SDK do Azure para Java inclui apenas bibliotecas GA. Se você quiser depender de um pacote que ainda está em versão beta ou de uma versão de biblioteca diferente da incluída na BOM, poderá especificar a versão de dependência do Maven junto com a groupId
seção de dependência e artifactId
. Você pode optar por ter dependências que usam versões de BOM e dependências com versões substituídas no mesmo arquivo POM do projeto, conforme mostrado no exemplo a seguir:
dependencies {
// Use the dependency version that is in the BOM
implementation 'com.azure:azure-messaging-eventhubs'
// Override the Service Bus dependency version specified in the BOM
implementation 'com.azure:azure-messaging-servicebus:7.4.0'
}
Se você usar essa abordagem e especificar versões diretamente em seu projeto, poderá obter conflitos de versão de dependência. Esses conflitos surgem porque pacotes diferentes podem depender de versões diferentes de dependências comuns, e essas versões podem não ser compatíveis entre si. Quando ocorrem conflitos, você pode enfrentar um comportamento indesejável em tempo de compilação ou tempo de execução. Recomendamos que você confie nas versões que estão na BOM do SDK do Azure, a menos que necessário. Para obter mais informações sobre como lidar com dependências ao usar o SDK do Azure para Java, consulte Solucionar problemas de conflitos de versão de dependência.
Criar uma imagem nativa com GraalVM
Você pode usar GraalVM para criar uma imagem nativa de um aplicativo Java. GraalVM compila o código Java antecipadamente em código de máquina nativo, o que pode gerar ganhos drásticos de desempenho em determinadas situações. O SDK do Azure para Java fornece os metadados necessários em cada uma de suas bibliotecas de cliente para dar suporte à compilação de imagens nativas GraalVM.
Para começar, você precisa instalar o GraalVM e preparar seu sistema de desenvolvimento para compilar imagens nativas. O processo de instalação do GraalVM é simples, e a documentação do GraalVM fornece instruções passo a passo para instalar o GraalVM e usar o GraalVM para instalar a imagem nativa. Siga a seção de pré-requisitos cuidadosamente para instalar os compiladores nativos necessários para seu sistema operacional.
Com seu projeto existente baseado em Gradle, você pode seguir as instruções GraalVM para Gradle sobre como adicionar suporte GraalVM ao seu projeto. Ao fazer isso, você tem mais opções de compilação, permitindo que você compile seu aplicativo no bytecode Java padrão ou em uma imagem nativa compilada pelo GraalVM.
Em seguida, você está pronto para executar uma compilação de imagem nativa. Você pode usar as ferramentas padrão do Gradle para usar a imagem nativa do GraalVM. Para Gradle, use o seguinte comando:
gradle nativeCompile
Depois de executar esse comando, GraalVM gera um executável nativo para a plataforma em que está sendo executado. O executável aparece no diretório Gradle /app/build/native/nativeCompile do seu projeto. Agora você pode executar seu aplicativo com esse arquivo executável e ele deve ter um desempenho semelhante a um aplicativo Java padrão.