Globalcode – Open4education
Application Life-cycle Management
Com ferramentas open source!
Globalcode – Open4education
Agenda
Introdução
Redmine
Maven
Source Code Management
Hudson
Nexus
Globalcode – Open4education
vinicius@globalcode.com.br
Twitter @vsenger
Programador
Fundador da Globalcode
Bruno Souza
bruno@javaman.com.br
@brjavaman
http://java.mn
Vinicius Senger
Globalcode – Open4education
TDC2013 – The Developers Conference
• 10 a 14 de julho
• Terá uma trilha de ALM
• Outras trilhas relevantes
• Cloud Computing
• Open Source
• Java
• Arquitetura
Curso AA1 já está online: ALM a fundo!
Lembretes! (leia-se: merchan)
Globalcode – Open4education
• Application Lifecycle Management: gerenciamento
contínuo do software;
• Casamento da gestão de negócio com engenharia de
software;
• Requer ferramentas integradas para gerenciar:
Requisitos;
Repositório de código;
Construção integrada;
Arquitetura e codificação;
Testes e qualidade;
Gerenciamento de versões e componentes;
A.L.M.
Globalcode – Open4education
A.L.M.
• Independente de metodologia, arquitetura e tecnologia
TODA EMPRESA PRECISA DE A.L.M.
• Não documentar o futuro (Agile / Scrum) é uma coisa,
poder rastrear o passado é outra;
• ALM = é como álbum de fotografia do seu software, com
retratos tirados automaticamente a cada mudança, falha,
novo requisito, novo release, etc.
• Todo mundo sai ganhando: bom para o developer,
gerente, arquiteto, Scrum Master, P.O., V.P., CIO, CTO,
Asponi, etc.
Globalcode – Open4education
• Vantagens na adoção:
• Rastreabilidade e dados post-hoc;
• Cultura de planejamento de releases / backlog;
• Gerenciamento integrado;
• Simplificação nos processos;
• Agilidade na construção do software;
• Conseqüente aumento na cultura de testes;
• Aumento da reusabilidade;
A.L.M. - vantagens
Globalcode – Open4education
“Gerenciar sem backlog é como ser um mecânico que
recebe carros para conserto sem que expliquem o
problema do carro.”
A.L.M. - vantagens
Globalcode – Open4education
• Expõe os ciclos de vida do software, facilitando e
motivando sua a gestão:
• Requisitos / Backlog / Atividade / User Story
• Documentação (wiki / files) e suporte (fórum)
• Versionamento, tags, brunches, ..
• Gestão de Componentes e repositórios
• Arquétipos Maven
• Construção
• Testes – Homologação - Produção
• Deployment
Gestão de Arquitetura
Globalcode – Open4education
• Pilha A.L.M. open-source que usamos:
A.L.M. open-source
Disciplina Software
Gerenciamento de Requisitos Redmine
Gestão de código / versionamento SVN e GIT
Construção e dependências Maven
Gerenciamento de arquétipos Maven
Integração Contínua Hudson
Repositório de componentes Nexus
Ferramenta para desenvolvimento Eclipse IDE com plugins
Globalcode – Open4education
• oferece esta pilha como SaaS rodando na Amazon
• Mais vantagens ainda:
• Você tem o ambiente montado em 24hs
• Não precisa de novos servidores na sua empresa!
• Softwares atualizados pela ToolsCloud e suporte
• Redmine, SVN, GIT, Hudson, Nexus integrados com
LDAP é um enorme diferencial
• Experimente online as ferramentas desse mini-curso:
• https://demo.toolscloud.com
• user: toolscloud senha: toolscloud
Globalcode – Open4education
A.L.M.
Novo projeto
RedMine SVN Hudson
Requisitos Codificação Build & Testes
Release
Nexus
HomologaçãoProdução
Bugs
e Melhorias
1
2 2 2
53 4
6
10
9 8
7
Deployment Contínuo
Globalcode – Open4education
1. Testes
1. Integração contínua
1. Gestão de componentes 3os com Nexus
A.L.M. em uma semana
Globalcode – Open4education
1. Testes regressivos
1. Deployment contínuo básico
1. Gestão dos seus próprios componentes com Nexus
A.L.M. em um mês
Globalcode – Open4education
1. Testes avançados
1. Deployment contínuo avançado
1. Code review contínuo
Depois
Globalcode – Open4education
• Gerenciamento de Requisitos com:
• Gestão de pendências;
• Gerenciamento de horas gastas / time tracking;
• Integração com SCM;
• Conceito de projetos e sub-projetos;
• Fórum, wiki, arquivos, news, calendário, gantt chart e
sistema de segurança;
• Software open-source construído em Ruby on Rails;
• Centenas de plug-ins e módulos adicionais;
• Muitas possibilidades de customização;
Redmine
Globalcode – Open4education
• Download e Instalação
• www.redmine.org
• Precisa de Ruby 1.8, Rails 2.3.5, Rack 1.0.1,
RubyGems 1.8, Rake, i18n, libmysql-ruby, libopenssl-
ruby1.8;
Redmine
Globalcode – Open4education
• Tela de login do Redmine:
Redmine
Globalcode – Open4education
• Após login, temos dois principais itens: Projects, para
entrar em um projeto e Administration para config. geral:
Redmine
Home
Globalcode – Open4education
• Temos dezenas de opções de controladores de versões
de arquivos no mercado:
• Subversion / SVN
• CVS
• GIT
• Microsft Sourcesafe e TFS
• Borland Starteam
• Clearcase
Versionamento
Globalcode – Open4education
• No mundo open-source os destaques são:
• CVS: sistema mais antigo e precário, porém, ainda
muito utilizado. Trabalha com protocolo proprietário;
• Subversion: evolução do CVS com disponibilização
via HTTP (além de protocolo proprietário) e alta
performance para versionamento;
• GIT: mais moderno ainda, por se tratar de um
repositório distribuído. Tem muitas vantagens, mas
demanda mais conhecimento do usuário;
Versionamento
Globalcode – Open4education
• “Qualidade” dos commits
• Cuidar bem das mensagens
• Independente de decisão, escolha entre SVN e GIT!
• GIT File System?
• Hooks & ALM
Versionamento
Globalcode – Open4education
• Subversion é um repositório client / server, não
distribuído;
• É mantido pelo grupo Apache:
• subversion.apache.org
• Instalação e administração simples;
• Não requer conhecimentos avançados do usuário;
• Excelente performance para gerar versões / cópias;
• Pode disponibilizar dados por protocolo proprietário ou
por HTTP / HTTPS;
Introdução ao Subversion
Globalcode – Open4education
Comandos básicos
• Adicionar um arquivo ou diretório*:
svn add <arquivo ou diretorio>
• Remover arquivo ou diretório*:
svn rm <arquivo ou diretorio>
• Mover arquivo ou diretório*:
svn mv <arquivo ou diretorio>
• Listar conteúdo do repositório:
svn ls <URL>
• Reverter alterações locais:
svn revert <arquivo>
*Arquivos serão adicionados ou removidos no próximo commit
Globalcode – Open4education
• Convencionalmente trabalhamos com:
• trunk (troco): uma pasta que contém os arquivos de desenvolvimento
do projeto.
• branch (galho): são linhas concorrentes de desenvolvimento do projeto
independentes;
• tag (etiqueta): são versões releases efetivos de um projeto.
Estrutura de trabalho
Trunk1
Branch2Tag3
Globalcode – Open4education
• Distribuído: no lugar de checkout você clona o repositório
• Seus commits são locais, portanto você pode trabalhar
offline
• Verbos: add commit log diff status branch merge push
• Entre offline e online vários commits!
• GIT ou Subversion?
GIT
Globalcode – Open4education
• O Redmine pode ser integrar com seu sistema de ;
• Para isso, clique nos Settings do Projeto e, em seguida,
escolha Repository:
Integração com Redmine
Globalcode – Open4education
• Ao vincular o projeto a um repositório você terá algumas
integrações;
• Últimas mudanças e commits no item Activities
Integração com Redmine
Globalcode – Open4education
• Navegar nos arquivos do SVN via Web clicando no item
Repository:
Integração com Redmine
Globalcode – Open4education
• E o recurso mais útil é a possibilidade de você referenciar
as Issues nas mensagens de commit;
cd /home/almadmin/projetos-svn/projeto1/trunk
touch novo-arquivo.txt
svn commit –m “Correçao de problema de encoding da IssueID #2”
Integração com Redmine
Globalcode – Open4education
• Você pode configurar as palavras que serão detectadas
nas mensagens de commit em:
Redmine –> Administration –> Settings -> Repositories
Integração com Redmine
Configuramos as palavras de referência aqui
Fixing keywords podem mudar o status da Issue!
Globalcode – Open4education
cd /home/almadmin/projetos-svn/projeto1/trunk
touch novo-arquivo.txt
svn commit –m “Correçao de problema closes #2”
Integração com Redmine
Globalcode – Open4education
• Apresentamos o Redmine com SCM integrado.
• Desta forma podemos ter um time de desenvolvimento
compartilhando o mesmo servidor SCM para desenvolver
as Issues do projeto;
• Será que isso é o suficiente para nossa necessidade?
• NÃO! Imagine que vários desenvolvedores podem fazer
commit de código no fim do dia resultando em um código
não-compilável;
Integração Continua
Globalcode – Open4education
• Hudson é um servidor open-source de integração
continua;
• Um “Continous integration server / CI server” pode
desempenhar várias tarefas como:
• Checkout de código-fonte;
• Build e teste;
• Publicação de resultados;
• Comunicação com membros do time;
• Na prática o Hudson é um agendador de tarefas de
construção de softwares altamente customizável;
Introdução ao Hudson
Globalcode – Open4education
• Fácil instalação e configuração;
• Interface é web based;
• Pode fazer builds distribuídos;
• Relatório de teste unitário;
• Notificação do estado dos builds;
• Notificação em caso de quebra;
Introdução ao Hudson
Globalcode – Open4education
• Arquitetura extensível baseada em plugins com mais de
150 de plugins disponíveis;
• Por padrão vem com 4 plugins instalados:
• CVS
• SVN
• Maven
• SSH
Introdução ao Hudson
Globalcode – Open4education
• O Hudson pode funcionar de três formas:
• Stand-alone: java –jar hudson.war
• JNLP: https://hudson.dev.java.net/hudson.jnlp
• JavaEE container: fazendo deploy do hudson.war
Glassfish, Jboss, Tomcat, Jetty, Winstone,
Websphere;
Instalação e inicialização
Globalcode – Open4education
• Para acessar o Hudson abra um browser e digite a
seguinte URL: http://localhost:8080/hudson-2.0.0
Instalação e inicialização
Executores de builds. O Hudson
vem com 2 executores de builds
por padrão.
Configurações do Hudson
Membros do Hudson e projetos
Relacionamento entre projetos
Views customizadas
Globalcode – Open4education
• Para fazer as configurações iniciais devemos clicar em
Manage Hudson
Configuração
Globalcode – Open4education
• Em seguida Configure System teremos acesso as
principais configurações do Hudson:
Configuração
Representa o no. de
executores de builds.
Globalcode – Open4education
• Após a instalação é importante configurar o local onde
estão instalados JDK, Maven e Ant (se usar);
Configuração
Globalcode – Open4education
• A outra configuração importante é uma conta de e-mail
funcionando para o Hudson poder se comunicar com
equipes:
Configuração
Globalcode – Open4education
Criando Jobs
• Basicamente o Hudson
pode trabalhar com
projetos livres ou Maven;
• Maior parte dos casos
utilizamos Maven ou Ant;
• Maven é o mais simples
de se usar!
Globalcode – Open4education
Criando Jobs
•Em seguida configuramos o
job indicando principalmente
o repositório para checkout
do projeto!
Globalcode – Open4education
Criando Jobs
Podemos clicar em Build
Now e Hudson vai iniciar o
checkout do código e depois
vai disparar o build Maven!
Globalcode – Open4education
• O dashboard traz as informações sobre os diversos jobs /
projetos configurados;
• Este ícone indica a estabilidade dos builds:
Dashboard
Globalcode – Open4education
• O Maven pode baixar automaticamente bibliotecas da
Internet (se open-source);
• Isso é excelente para o desenvolvimento de pequenos
times, agora se tivermos um time de 100
desenvolvedores criando projetos Maven que fazem
downloads da Internet?
• Fatalmente teremos um problema de rede até que todos
os Mavens terminem seus downloads!
Introdução Nexus
Globalcode – Open4education
• Para ajudar a solucionar este tipo de problema contamos
com Gerenciadores de Repositórios, que
desempenham um papel de proxy para os demais:
Introdução Nexus
Developer Hudson
Build com Maven
jar: log4j, hibernate, spring etc.
Nexus
Internet
Globalcode – Open4education
• O Nexus faz o download centralizado dos componentes
fazendo um cache que ele utilizará para servir aos
demais desenvolvedores;
• Além do papel de cache, o Nexus também pode
catalogar o componentes e artefatos da sua empresa, do
seu negócio;
• Isso facilita bastante o reuso entre equipes;
• Maven + Nexus + Hudson: parceria perfeita!
Introdução ao Nexus
Globalcode – Open4education
• Devemos adicionar esta configuração em um arquivo
settings.xml que ficará no diretório .m2 do usuário:
Configurando Maven
Globalcode – Open4education
• Para que o Maven possa fazer deployment de artefatos
no Nexus:
Configurando Maven
Globalcode – Open4education
Conclusões
• As ferramentas Maven, Nexus, Hudson, Redmine e
Subversion formam uma poderosa solução de ALM;
• Todas as ferramentas são open-source;
• Este ambiente pode funcionar para Delphi, C, C++, Ruby,
entre outras plataformas;
• Muitas possibilidades de customização;
• A ToolsCloud oferece este ambiente como serviço da
nuvem
Globalcode – Open4education
Obrigado!
vinicius@globalcode.com.br
@vsenger
Bruno Souza – @brjavaman – bruno@javaman.com.br

Open4Education | MC122 - Introdução a ALM OpenSource

  • 1.
    Globalcode – Open4education ApplicationLife-cycle Management Com ferramentas open source!
  • 2.
  • 3.
    Globalcode – Open4education vinicius@globalcode.com.br Twitter@vsenger Programador Fundador da Globalcode Bruno Souza bruno@javaman.com.br @brjavaman http://java.mn Vinicius Senger
  • 4.
    Globalcode – Open4education TDC2013– The Developers Conference • 10 a 14 de julho • Terá uma trilha de ALM • Outras trilhas relevantes • Cloud Computing • Open Source • Java • Arquitetura Curso AA1 já está online: ALM a fundo! Lembretes! (leia-se: merchan)
  • 5.
    Globalcode – Open4education •Application Lifecycle Management: gerenciamento contínuo do software; • Casamento da gestão de negócio com engenharia de software; • Requer ferramentas integradas para gerenciar: Requisitos; Repositório de código; Construção integrada; Arquitetura e codificação; Testes e qualidade; Gerenciamento de versões e componentes; A.L.M.
  • 6.
    Globalcode – Open4education A.L.M. •Independente de metodologia, arquitetura e tecnologia TODA EMPRESA PRECISA DE A.L.M. • Não documentar o futuro (Agile / Scrum) é uma coisa, poder rastrear o passado é outra; • ALM = é como álbum de fotografia do seu software, com retratos tirados automaticamente a cada mudança, falha, novo requisito, novo release, etc. • Todo mundo sai ganhando: bom para o developer, gerente, arquiteto, Scrum Master, P.O., V.P., CIO, CTO, Asponi, etc.
  • 7.
    Globalcode – Open4education •Vantagens na adoção: • Rastreabilidade e dados post-hoc; • Cultura de planejamento de releases / backlog; • Gerenciamento integrado; • Simplificação nos processos; • Agilidade na construção do software; • Conseqüente aumento na cultura de testes; • Aumento da reusabilidade; A.L.M. - vantagens
  • 8.
    Globalcode – Open4education “Gerenciarsem backlog é como ser um mecânico que recebe carros para conserto sem que expliquem o problema do carro.” A.L.M. - vantagens
  • 9.
    Globalcode – Open4education •Expõe os ciclos de vida do software, facilitando e motivando sua a gestão: • Requisitos / Backlog / Atividade / User Story • Documentação (wiki / files) e suporte (fórum) • Versionamento, tags, brunches, .. • Gestão de Componentes e repositórios • Arquétipos Maven • Construção • Testes – Homologação - Produção • Deployment Gestão de Arquitetura
  • 10.
    Globalcode – Open4education •Pilha A.L.M. open-source que usamos: A.L.M. open-source Disciplina Software Gerenciamento de Requisitos Redmine Gestão de código / versionamento SVN e GIT Construção e dependências Maven Gerenciamento de arquétipos Maven Integração Contínua Hudson Repositório de componentes Nexus Ferramenta para desenvolvimento Eclipse IDE com plugins
  • 11.
    Globalcode – Open4education •oferece esta pilha como SaaS rodando na Amazon • Mais vantagens ainda: • Você tem o ambiente montado em 24hs • Não precisa de novos servidores na sua empresa! • Softwares atualizados pela ToolsCloud e suporte • Redmine, SVN, GIT, Hudson, Nexus integrados com LDAP é um enorme diferencial • Experimente online as ferramentas desse mini-curso: • https://demo.toolscloud.com • user: toolscloud senha: toolscloud
  • 12.
    Globalcode – Open4education A.L.M. Novoprojeto RedMine SVN Hudson Requisitos Codificação Build & Testes Release Nexus HomologaçãoProdução Bugs e Melhorias 1 2 2 2 53 4 6 10 9 8 7 Deployment Contínuo
  • 13.
    Globalcode – Open4education 1.Testes 1. Integração contínua 1. Gestão de componentes 3os com Nexus A.L.M. em uma semana
  • 14.
    Globalcode – Open4education 1.Testes regressivos 1. Deployment contínuo básico 1. Gestão dos seus próprios componentes com Nexus A.L.M. em um mês
  • 15.
    Globalcode – Open4education 1.Testes avançados 1. Deployment contínuo avançado 1. Code review contínuo Depois
  • 16.
    Globalcode – Open4education •Gerenciamento de Requisitos com: • Gestão de pendências; • Gerenciamento de horas gastas / time tracking; • Integração com SCM; • Conceito de projetos e sub-projetos; • Fórum, wiki, arquivos, news, calendário, gantt chart e sistema de segurança; • Software open-source construído em Ruby on Rails; • Centenas de plug-ins e módulos adicionais; • Muitas possibilidades de customização; Redmine
  • 17.
    Globalcode – Open4education •Download e Instalação • www.redmine.org • Precisa de Ruby 1.8, Rails 2.3.5, Rack 1.0.1, RubyGems 1.8, Rake, i18n, libmysql-ruby, libopenssl- ruby1.8; Redmine
  • 18.
    Globalcode – Open4education •Tela de login do Redmine: Redmine
  • 19.
    Globalcode – Open4education •Após login, temos dois principais itens: Projects, para entrar em um projeto e Administration para config. geral: Redmine Home
  • 20.
    Globalcode – Open4education •Temos dezenas de opções de controladores de versões de arquivos no mercado: • Subversion / SVN • CVS • GIT • Microsft Sourcesafe e TFS • Borland Starteam • Clearcase Versionamento
  • 21.
    Globalcode – Open4education •No mundo open-source os destaques são: • CVS: sistema mais antigo e precário, porém, ainda muito utilizado. Trabalha com protocolo proprietário; • Subversion: evolução do CVS com disponibilização via HTTP (além de protocolo proprietário) e alta performance para versionamento; • GIT: mais moderno ainda, por se tratar de um repositório distribuído. Tem muitas vantagens, mas demanda mais conhecimento do usuário; Versionamento
  • 22.
    Globalcode – Open4education •“Qualidade” dos commits • Cuidar bem das mensagens • Independente de decisão, escolha entre SVN e GIT! • GIT File System? • Hooks & ALM Versionamento
  • 23.
    Globalcode – Open4education •Subversion é um repositório client / server, não distribuído; • É mantido pelo grupo Apache: • subversion.apache.org • Instalação e administração simples; • Não requer conhecimentos avançados do usuário; • Excelente performance para gerar versões / cópias; • Pode disponibilizar dados por protocolo proprietário ou por HTTP / HTTPS; Introdução ao Subversion
  • 24.
    Globalcode – Open4education Comandosbásicos • Adicionar um arquivo ou diretório*: svn add <arquivo ou diretorio> • Remover arquivo ou diretório*: svn rm <arquivo ou diretorio> • Mover arquivo ou diretório*: svn mv <arquivo ou diretorio> • Listar conteúdo do repositório: svn ls <URL> • Reverter alterações locais: svn revert <arquivo> *Arquivos serão adicionados ou removidos no próximo commit
  • 25.
    Globalcode – Open4education •Convencionalmente trabalhamos com: • trunk (troco): uma pasta que contém os arquivos de desenvolvimento do projeto. • branch (galho): são linhas concorrentes de desenvolvimento do projeto independentes; • tag (etiqueta): são versões releases efetivos de um projeto. Estrutura de trabalho Trunk1 Branch2Tag3
  • 26.
    Globalcode – Open4education •Distribuído: no lugar de checkout você clona o repositório • Seus commits são locais, portanto você pode trabalhar offline • Verbos: add commit log diff status branch merge push • Entre offline e online vários commits! • GIT ou Subversion? GIT
  • 27.
    Globalcode – Open4education •O Redmine pode ser integrar com seu sistema de ; • Para isso, clique nos Settings do Projeto e, em seguida, escolha Repository: Integração com Redmine
  • 28.
    Globalcode – Open4education •Ao vincular o projeto a um repositório você terá algumas integrações; • Últimas mudanças e commits no item Activities Integração com Redmine
  • 29.
    Globalcode – Open4education •Navegar nos arquivos do SVN via Web clicando no item Repository: Integração com Redmine
  • 30.
    Globalcode – Open4education •E o recurso mais útil é a possibilidade de você referenciar as Issues nas mensagens de commit; cd /home/almadmin/projetos-svn/projeto1/trunk touch novo-arquivo.txt svn commit –m “Correçao de problema de encoding da IssueID #2” Integração com Redmine
  • 31.
    Globalcode – Open4education •Você pode configurar as palavras que serão detectadas nas mensagens de commit em: Redmine –> Administration –> Settings -> Repositories Integração com Redmine Configuramos as palavras de referência aqui Fixing keywords podem mudar o status da Issue!
  • 32.
    Globalcode – Open4education cd/home/almadmin/projetos-svn/projeto1/trunk touch novo-arquivo.txt svn commit –m “Correçao de problema closes #2” Integração com Redmine
  • 33.
    Globalcode – Open4education •Apresentamos o Redmine com SCM integrado. • Desta forma podemos ter um time de desenvolvimento compartilhando o mesmo servidor SCM para desenvolver as Issues do projeto; • Será que isso é o suficiente para nossa necessidade? • NÃO! Imagine que vários desenvolvedores podem fazer commit de código no fim do dia resultando em um código não-compilável; Integração Continua
  • 34.
    Globalcode – Open4education •Hudson é um servidor open-source de integração continua; • Um “Continous integration server / CI server” pode desempenhar várias tarefas como: • Checkout de código-fonte; • Build e teste; • Publicação de resultados; • Comunicação com membros do time; • Na prática o Hudson é um agendador de tarefas de construção de softwares altamente customizável; Introdução ao Hudson
  • 35.
    Globalcode – Open4education •Fácil instalação e configuração; • Interface é web based; • Pode fazer builds distribuídos; • Relatório de teste unitário; • Notificação do estado dos builds; • Notificação em caso de quebra; Introdução ao Hudson
  • 36.
    Globalcode – Open4education •Arquitetura extensível baseada em plugins com mais de 150 de plugins disponíveis; • Por padrão vem com 4 plugins instalados: • CVS • SVN • Maven • SSH Introdução ao Hudson
  • 37.
    Globalcode – Open4education •O Hudson pode funcionar de três formas: • Stand-alone: java –jar hudson.war • JNLP: https://hudson.dev.java.net/hudson.jnlp • JavaEE container: fazendo deploy do hudson.war Glassfish, Jboss, Tomcat, Jetty, Winstone, Websphere; Instalação e inicialização
  • 38.
    Globalcode – Open4education •Para acessar o Hudson abra um browser e digite a seguinte URL: http://localhost:8080/hudson-2.0.0 Instalação e inicialização Executores de builds. O Hudson vem com 2 executores de builds por padrão. Configurações do Hudson Membros do Hudson e projetos Relacionamento entre projetos Views customizadas
  • 39.
    Globalcode – Open4education •Para fazer as configurações iniciais devemos clicar em Manage Hudson Configuração
  • 40.
    Globalcode – Open4education •Em seguida Configure System teremos acesso as principais configurações do Hudson: Configuração Representa o no. de executores de builds.
  • 41.
    Globalcode – Open4education •Após a instalação é importante configurar o local onde estão instalados JDK, Maven e Ant (se usar); Configuração
  • 42.
    Globalcode – Open4education •A outra configuração importante é uma conta de e-mail funcionando para o Hudson poder se comunicar com equipes: Configuração
  • 43.
    Globalcode – Open4education CriandoJobs • Basicamente o Hudson pode trabalhar com projetos livres ou Maven; • Maior parte dos casos utilizamos Maven ou Ant; • Maven é o mais simples de se usar!
  • 44.
    Globalcode – Open4education CriandoJobs •Em seguida configuramos o job indicando principalmente o repositório para checkout do projeto!
  • 45.
    Globalcode – Open4education CriandoJobs Podemos clicar em Build Now e Hudson vai iniciar o checkout do código e depois vai disparar o build Maven!
  • 46.
    Globalcode – Open4education •O dashboard traz as informações sobre os diversos jobs / projetos configurados; • Este ícone indica a estabilidade dos builds: Dashboard
  • 47.
    Globalcode – Open4education •O Maven pode baixar automaticamente bibliotecas da Internet (se open-source); • Isso é excelente para o desenvolvimento de pequenos times, agora se tivermos um time de 100 desenvolvedores criando projetos Maven que fazem downloads da Internet? • Fatalmente teremos um problema de rede até que todos os Mavens terminem seus downloads! Introdução Nexus
  • 48.
    Globalcode – Open4education •Para ajudar a solucionar este tipo de problema contamos com Gerenciadores de Repositórios, que desempenham um papel de proxy para os demais: Introdução Nexus Developer Hudson Build com Maven jar: log4j, hibernate, spring etc. Nexus Internet
  • 49.
    Globalcode – Open4education •O Nexus faz o download centralizado dos componentes fazendo um cache que ele utilizará para servir aos demais desenvolvedores; • Além do papel de cache, o Nexus também pode catalogar o componentes e artefatos da sua empresa, do seu negócio; • Isso facilita bastante o reuso entre equipes; • Maven + Nexus + Hudson: parceria perfeita! Introdução ao Nexus
  • 50.
    Globalcode – Open4education •Devemos adicionar esta configuração em um arquivo settings.xml que ficará no diretório .m2 do usuário: Configurando Maven
  • 51.
    Globalcode – Open4education •Para que o Maven possa fazer deployment de artefatos no Nexus: Configurando Maven
  • 52.
    Globalcode – Open4education Conclusões •As ferramentas Maven, Nexus, Hudson, Redmine e Subversion formam uma poderosa solução de ALM; • Todas as ferramentas são open-source; • Este ambiente pode funcionar para Delphi, C, C++, Ruby, entre outras plataformas; • Muitas possibilidades de customização; • A ToolsCloud oferece este ambiente como serviço da nuvem
  • 53.