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
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
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.
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
Configure JDK, Git, Gradle:
Meu caminho JDK não foi padronizado quando foi instalado originalmente. Ele foi codificado para evitar enganos.
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.
A configuração do Gradle é a mesma acima, não há muito a dizer.划重点 -- Android SDK需要另行配置,见下图
[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
Selecione Estilo Livre e OK.
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.
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á:
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.
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
Após clicar em Construir agora, a barra de progresso mostrada abaixo aparecerá.
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.
[Adicionar parâmetros] - [Parâmetros de opção], ou você deseja usar alguns parâmetros.
A compilação parametrizada é configurada e os parâmetros precisam ser mapeados para o código durante a compilação, conforme mostrado abaixo:
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.properties
os 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.gradle
insira esse parâmetro e adicione a BuildConfig.java
:
......
android {
......
defaultConfig {
......
buildConfigField "String", "baseUrl", baseUrl
}
......
}
......
Este parâmetro pode ser obtido diretamente no código: BuildConfig.baseUrl
após a configuração acima, o projeto irá mudar:
Armadilhas encontradas
Erro AAPT
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.
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.