Use Jenkins para realizar o empacotamento automatizado do Android e a experiência de armadilhas

Sempre que há um projeto em processo, o teste precisa ser testado em unidade. É bastante problemático alternar manualmente os ambientes de produção e teste todas as vezes, alternar vários push, estatísticas e contas de terceiros. Ao mesmo tempo, também precisa armazenar temporariamente o código e alternar ramificações profundas. Muito complicado. Neste momento, se a configuração do projeto for empacotada automaticamente, esses problemas poderão ser resolvidos. Vamos dar uma olhada no processo de configuração do Jenkins.

1. Baixe Jenkins

Endereço de download do site oficial do Jenkins: https://jenkins.io/download/ , selecione a versão do seu computador que corresponde ao seu sistema operacional
Captura de tela de download do Jenkins

2.Instale o Jenkins 

 Basta instalá-lo diretamente após o download e dar o próximo passo. Depois de instalar seu navegador padrão, um link de janela aparecerá automaticamente: http://localhost:8080
começando

Conforme mostrado na imagem, o caminho é fornecido, portanto não há necessidade de dizer mais nada, encontre o arquivo correspondente e copie e cole a senha dentro dele. continuar.
Guia do iniciante 

Instale o plug-in. Usamos apenas 2 plug-ins, basta optar por instalá-los. Encontre Gradle e Git, verifique-os e instale-os. Os plug-ins dependentes relevantes serão instalados automaticamente.
Não farei capturas de tela nas etapas a seguir, pois elas não são necessárias.
Em seguida, você será solicitado a criar uma conta de administrador e apenas optar por continuar usando admin.
Continue, deixe você configurar o caminho, apenas pule.
Pronto para usar.
Nota: Se você não instalar os plug-ins Gradle e Git necessários no local acima onde os plug-ins estão instalados, você também pode entrar na página do ambiente Jenkins e selecionar [Gerenciamento do Sistema] - [Gerenciar Plug-ins] - [Opcional Plug-ins] e, em seguida, localize/pesquise a instalação do plug-in correspondente.

Nota especial: Aqui está uma tentativa de configuração local. No servidor, você deve criar uma conta, configurar o caminho e instalar outros plug-ins balabala necessários.

3. Configurar Jenkins

Configuração global da ferramenta

Configurar informações de plug-in necessárias Configure JDK, Git, Gradle:
Configurar informações do JDK

Meu caminho JDK não foi padronizado quando foi instalado originalmente. Ele foi codificado para evitar enganos.
Configuração do Git 

 Parece que o Git não pode ser instalado automaticamente e parece que a versão padrão pode ser usada sem modificação. Se você estiver interessado, você pode tentar.
Configuração Gradle

A configuração do Gradle é a mesma acima, não há muito a dizer.
划重点 -- Android SDK需要另行配置,见下图
Configuração do sistema 

variáveis ​​ambientais
[Gerenciamento do Sistema] - [Configurações do Sistema] - [Propriedades Globais] - [Variáveis ​​de Ambiente], encontre a figura correspondente, adicione a variável de ambiente, a chave é "ANDROID_HOME" e o valor aponta para o diretório SDK.
Acima, a configuração está concluída.

4. Crie uma nova tarefa e configure-a 

Criar nova tarefa
estilo livre

 Selecione Estilo Livre e OK.
Informação básica
Nas informações básicas, clique em Avançado no canto inferior direito e haverá "Usar um espaço de trabalho personalizado". Se você marcar, poderá especificar o diretório. Se não marcar, o padrão será "espaço de trabalho" pasta no diretório de instalação do Jenkins.

Gerenciamento de código-fonte
Selecione Git para gerenciamento de código-fonte e preencha a URL do seu projeto. Se não houver certificação, um erro será relatado. Clique em "Adicionar" circulado na imagem e a seguinte imagem aparecerá:
Adicionar

Após adicionar o certificado, abra e selecione o certificado correspondente. Se estiver correto, nenhum erro será relatado e o ramo de checkout será exibido abaixo. O branch master padrão, você pode especificar um branch de acordo com a situação.
Deixe o gatilho de construção sozinho.
Construir 

Construir 2
Tarefas são instruções para execução de build, geralmente "app:clean app:assembleRelease", limpe primeiro e depois construa.
Após a construção, a operação depende dos requisitos, e o upload automático do apk para Dandelion/fir, notificação por e-mail, etc.

5.Construir

Construir

Após clicar em Construir agora, a barra de progresso mostrada abaixo aparecerá.
Barra de progresso após a construção
Não houve sucesso
Azul é normal e a construção foi bem-sucedida. Vermelho indica que a compilação falhou. Há uma seta para baixo no lado direito do movimento do mouse. Clique para expandir as opções e clique na saída do console para visualizar os erros.

6. Construção paramétrica 

Parâmetros opcionais estão disponíveis durante a construção, para que pacotes com parâmetros diferentes possam ser produzidos. Por exemplo, baseUrl diferente.
Construção paramétrica

[Adicionar parâmetros] - [Parâmetros de opção], ou você deseja usar alguns parâmetros.
parâmetros de opção
A compilação parametrizada é configurada e os parâmetros precisam ser mapeados para o código durante a compilação, conforme mostrado abaixo: 

Código de importação
Acima, a configuração de compilação parametrizada no Jenkins está concluída. Também precisamos receber esse parâmetro em nosso código.
Os parâmetros serão mapeados para gradle.propertiesos nomes de parâmetros correspondentes no arquivo. Primeiro definimos um parâmetro no arquivo e atribuímos um valor padrão:

baseUrl = "http://qa-xxxxxx.com/api/"

Em seguida, build.gradleinsira esse parâmetro e adicione a BuildConfig.java:

......
android {
	......
    defaultConfig {
	    ......
        buildConfigField "String", "baseUrl", baseUrl
    }
	......
}
......

BuildConfig.java
Este parâmetro pode ser obtido diretamente no código: BuildConfig.baseUrl
após a configuração acima, o projeto irá mudar:

Construir com parâmetros

Armadilhas encontradas 

Erro AAPT

Registro de erros 1

Mensagem de erro: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: erro AAPT: verifique os logs para obter detalhes
O Baidu tem três soluções. Uma é adicionar o código android em gradle.properties .enableAapt2 =false, a segunda é unificar compileSdkVersion, buildToolsVersion, minSdkVersion, targetSdkVersion, etc. de cada módulo, e a terceira é ainda mais irrelevante.
Aqui quero dizer que seu código deve ter sido executado localmente, e a compilação e empacotamento foram normais. Somente após a execução do Jenkins é que esse erro foi relatado. Essas três soluções são insustentáveis! Teoricamente não deveria ser um problema no código! !
Por fim, encontrei uma afirmação em um mecanismo de busca inexistente de que o caminho do Gradle é muito longo, causando erro de compilação balabala...
Na verdade, se você olhar atentamente o log de erros, descobrirá que a série de erros são todos caminhos muito longos (o denominador comum), portanto esta afirmação é relativamente confiável.

GRADLE_USER_HOME

Na seção de construção das configurações do projeto, clique em Avançado no canto inferior direito, encontre esta opção e marque-a.
Construa novamente, CONSTRUA COM SUCESSO.

dois. falta ajuda

O problema ocorreu quando eu implantei no servidor. Primeiro, ele avisou que as ferramentas de construção estavam faltando e, em seguida, a versão correspondente do SDK estava faltando, e eu carreguei o diretório SDK do servidor um por um. Então esse erro foi relatado. Mas tudo é normal localmente e não há problema com o SDK. Não há razão para que ele não funcione no servidor.
Aqui quero condenar meu colega de operação e manutenção: ele me disse com firmeza que o SDK no servidor foi copiado e carregado de outro colega Android (windows), mas depois ele descobriu que ele mesmo fez o downgrade (linux). Perguntei ao colega Android e a resposta foi “não sei” e “dê uma olhada no Baidu”. :)
Demorei muito para localizar esse problema, o servidor é um ambiente Linux, o ambiente local é um ambiente Windows e o SDK é dividido em versões. Arquivos em diferentes versões do SDK são inconsistentes, causando erros.

A descrição acima é o processo de configuração do Jenkins e os problemas encontrados durante o processo de configuração. A configuração automatizada está concluída.

Acho que você gosta

Origin blog.csdn.net/weitao_666/article/details/98481784
Recomendado
Clasificación