Transcript
Page 1: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Page 2: Maven Versioning Strategy (VR)

MAVEN

Page 3: Maven Versioning Strategy (VR)

MAVEN VERSIONING STRATEGY

Page 4: Maven Versioning Strategy (VR)

MAVEN VERSIONING STRATEGY

Page 5: Maven Versioning Strategy (VR)

SUBVERSION

Page 6: Maven Versioning Strategy (VR)

SUBVERSION

O Subversion ou simplesmente SVN, é um sistema de controle de versão desenvolvido para ser o substituto do CVS.

Fundado em 2000 pela CollabNet, Inc., e desenvolvido como um projeto da Apache Software Foundation.

A versão 1.0 do Subversion (lançada em 23 de Fevereiro de 2004) possui vantagens em relação ao seu concorrente mais antigo CVS, como por exemplo ”commits" mais atômicos e releases mais consistentes.

Atualmente na versão 1.8 (Junho de 2013)

http://subversion.apache.org/docs/release-notes/

Page 7: Maven Versioning Strategy (VR)

GIT VERSUS SUBVERSION

Page 8: Maven Versioning Strategy (VR)

GIT VERSUS SUBVERSION

SUBVERSION

Arquitetura centralizada (Cliente-Servidor)

Depende de uma conexão de rede estabelecida com o repositório central

Funciona muito bem quando o repositório central está na mesma rede local.

Page 9: Maven Versioning Strategy (VR)

GIT VERSUS SUBVERSION

SUBVERSION

!

!

!

!

Page 10: Maven Versioning Strategy (VR)

GIT VERSUS SUBVERSION

GIT

Arquitetura distribuída (peer-to-peer)

Não depende de conexão para realizar o “commit" do código

Atende equipes com centenas de desenvolvedores

Funciona bem quando a equipe está espalhada em diversas filiais da empresa

O repositório “central”, quando existe, tem o papel do repositório “oficial” e não como processador central das requisições.

Maior complexidade

Page 11: Maven Versioning Strategy (VR)

GIT VERSUS SUBVERSION

GIT

(peer-to-peer)

commit/update local

!

!

!

!

Page 12: Maven Versioning Strategy (VR)

GIT VERSUS SUBVERSION

GIT

Pull: Atualiza o repositório local com todas as alterações feitas em outro repositório.

!

Push: Envia as alterações do repositório local para um outro repositório.

!

A sincronização entre os desenvolvedores acontece de repositório a repositório e não existe, um repositório mais importante que o outro, embora o papel de um repositório central possa ser usado para convencionar o fluxo de trabalho.

Page 13: Maven Versioning Strategy (VR)

GIT VERSUS SUBVERSION

No centralizado, os desenvolvedores trabalham no mesmo branch, seja esse a Trunk ou um branch.

!

!

O modelo distribuído é mais complicado. Na arquitetura peer-to-peer, os branches e os merges aparentemente desordenados podem tornar o grafo da evolução do projeto confuso à primeira vista.

!

!

Page 14: Maven Versioning Strategy (VR)

GIT VERSUS SUBVERSION

Comparativo de operações no modelo centralizado e distribuído

Page 15: Maven Versioning Strategy (VR)

GIT VERSUS SUBVERSION

Qual é o melhor?

!

Depende do seu cenário de trabalho!

Page 16: Maven Versioning Strategy (VR)

MAVEN VERSIONING STRATEGY

Page 17: Maven Versioning Strategy (VR)

MAVEN VERSIONING STRATEGY

FOCA no objetivo!

Page 18: Maven Versioning Strategy (VR)

MAVEN

O que é o Maven?

Ferramenta para gerenciamento de dependências e construção de artefatos (projetos).

Page 19: Maven Versioning Strategy (VR)

MAVEN

Como é o processo hoje para construir, versionar, publicar no repositório (Nexus) e realizar o deploy da aplicação no servidor de aplicações (WebSphere)?

Page 20: Maven Versioning Strategy (VR)

MAVEN

Page 21: Maven Versioning Strategy (VR)

MAVEN

1. Cria-se o projeto com maven e define a versão inicial 1.0.0

Page 22: Maven Versioning Strategy (VR)

MAVEN

1. Cria-se o projeto com maven e define a versão inicial 1.0.0

Page 23: Maven Versioning Strategy (VR)

MAVEN

1. Cria-se o projeto com maven e define a versão inicial 1.0.0

2. Adiciona funcionalidades ao projeto durante o sprint (Scrum)

Page 24: Maven Versioning Strategy (VR)

MAVEN

1. Cria-se o projeto com maven e define a versão inicial 1.0.0

2. Adiciona funcionalidades ao projeto durante o sprint (Scrum)

Page 25: Maven Versioning Strategy (VR)

MAVEN

1. Cria-se o projeto com maven e define a versão inicial 1.0.0

2. Adiciona funcionalidades ao projeto durante o sprint (Scrum)

3. Antes do pacote de change, altera-se a versão do pom.xml manualmente.

Page 26: Maven Versioning Strategy (VR)

MAVEN

1. Cria-se o projeto com maven e define a versão inicial 1.0.0

2. Adiciona funcionalidades ao projeto durante o sprint (Scrum)

3. Antes do pacote de change, altera-se a versão do pom.xml manualmente.

Page 27: Maven Versioning Strategy (VR)

MAVEN

1. Cria-se o projeto com maven e define a versão inicial 1.0.0

2. Adiciona funcionalidades ao projeto durante o sprint (Scrum)

3. Antes do pacote de change, altera-se a versão do pom.xml manualmente. altera a versão…

Page 28: Maven Versioning Strategy (VR)

MAVEN

1. Cria-se o projeto com maven e define a versão inicial 1.0.0

2. Adiciona funcionalidades ao projeto durante o sprint (Scrum)

3. Antes do pacote de change, altera-se a versão do pom.xml manualmente. altera a versão…

release + 1

Page 29: Maven Versioning Strategy (VR)

MAVEN

1. Cria-se o projeto com maven e define a versão inicial 1.0.0

2. Adiciona funcionalidades ao projeto durante o sprint (Scrum)

3. Antes do pacote de change, altera-se a versão do pom.xml manualmente. altera a versão…

release + 1

COMO ASSIM???

Page 30: Maven Versioning Strategy (VR)

MAVEN

Page 31: Maven Versioning Strategy (VR)

MAVEN4. Envia (commit) o código para o servidor de controle de versão

Page 32: Maven Versioning Strategy (VR)

MAVEN4. Envia (commit) o código para o servidor de controle de versão

Page 33: Maven Versioning Strategy (VR)

MAVEN4. Envia (commit) o código para o servidor de controle de versão

Page 34: Maven Versioning Strategy (VR)

MAVEN4. Envia (commit) o código para o servidor de controle de versão

Page 35: Maven Versioning Strategy (VR)

MAVEN4. Envia (commit) o código para o servidor de controle de versão

5. Realiza a construção do artefato (build do projeto)

Page 36: Maven Versioning Strategy (VR)

MAVEN4. Envia (commit) o código para o servidor de controle de versão

5. Realiza a construção do artefato (build do projeto)

Page 37: Maven Versioning Strategy (VR)

MAVEN4. Envia (commit) o código para o servidor de controle de versão

5. Realiza a construção do artefato (build do projeto)profile websphere, lembrou?

Page 38: Maven Versioning Strategy (VR)

MAVEN4. Envia (commit) o código para o servidor de controle de versão

5. Realiza a construção do artefato (build do projeto)

6. Publica o artefato no maven proxy (em breve Nexus)

profile websphere, lembrou?

Page 39: Maven Versioning Strategy (VR)

MAVEN4. Envia (commit) o código para o servidor de controle de versão

5. Realiza a construção do artefato (build do projeto)

6. Publica o artefato no maven proxy (em breve Nexus)

profile websphere, lembrou?

Page 40: Maven Versioning Strategy (VR)

MAVEN4. Envia (commit) o código para o servidor de controle de versão

5. Realiza a construção do artefato (build do projeto)

6. Publica o artefato no maven proxy (em breve Nexus)

7. Quando dá vontade, faz a branch da TAG da versão

profile websphere, lembrou?

Page 41: Maven Versioning Strategy (VR)

MAVEN

8. Antes de colocar em produção, publica-se no ambiente de testes e posteriormente homologação.

Page 42: Maven Versioning Strategy (VR)

MAVEN

Page 43: Maven Versioning Strategy (VR)

MAVEN

release + 1 ?

Page 44: Maven Versioning Strategy (VR)

MAVEN

release + 1 ? Quando?

Page 45: Maven Versioning Strategy (VR)

MAVEN

release + 1 ? Quando?

Page 46: Maven Versioning Strategy (VR)

MAVEN

release + 1 ? Quando?

Page 47: Maven Versioning Strategy (VR)

MAVEN

release + 1 ? Quando?

Page 48: Maven Versioning Strategy (VR)

MAVEN

release + 1 ? Quando?

Como?

Page 49: Maven Versioning Strategy (VR)

MAVEN

1 . ? . ?

release + 1 ? Quando?

Como?

Page 50: Maven Versioning Strategy (VR)

MAVEN

1 . ? . ? - ?

release + 1 ? Quando?

Como?

Page 51: Maven Versioning Strategy (VR)

MAVEN

Qual estratégia utilizar para incrementar a versão do projeto?

1 . ? . ? - ?

release + 1 ? Quando?

Como?

Page 52: Maven Versioning Strategy (VR)

SNAPSHOTS

Primeiro de tudo, SNAPSHOT não é a mesma coisa que alpha/beta ou milestone. É uma palavra-chave que significa a última versão do seu código. Aquela em desenvolvimento! Ou seja, ela muda!

Se você fizer o checkout do código ‘plataforma-1.5.0-SNAPSHOT' hoje e baixar a mesma versão mais tarde, muito provavelmente ele NÃO será o mesmo.

Isto também significa que se o seu projeto depende de uma versão SNAPSHOT, o maven precisará checar o repositório remoto por mudanças toda hora que você compilar o projeto.

Page 53: Maven Versioning Strategy (VR)

RELEASES

Então o que é uma release?

Release não significa que a sua versão está pronta para ir à produção.

Significa que o desenvolvedor decidiu que a este ponto do desenvolvimento o código deve ser “lockado”, ou seja, não irá se perder ou ser alterado.

Talvez o time de desenvolvimento quer apenas distribuir este código, seja como uma biblioteca para outras áreas que precisam se adiantar em suas tarefas, ou instalá-lo em um ambiente (servidor) de testes.

Isto significa que uma release pode ser:

Page 54: Maven Versioning Strategy (VR)

RELEASES

Então o que é uma release?

Release não significa que a sua versão está pronta para ir à produção.

Significa que o desenvolvedor decidiu que a este ponto do desenvolvimento o código deve ser “lockado”, ou seja, não irá se perder ou ser alterado.

Talvez o time de desenvolvimento quer apenas distribuir este código, seja como uma biblioteca para outras áreas que precisam se adiantar em suas tarefas, ou instalá-lo em um ambiente (servidor) de testes.

Isto significa que uma release pode ser:

alpha

Page 55: Maven Versioning Strategy (VR)

RELEASES

Então o que é uma release?

Release não significa que a sua versão está pronta para ir à produção.

Significa que o desenvolvedor decidiu que a este ponto do desenvolvimento o código deve ser “lockado”, ou seja, não irá se perder ou ser alterado.

Talvez o time de desenvolvimento quer apenas distribuir este código, seja como uma biblioteca para outras áreas que precisam se adiantar em suas tarefas, ou instalá-lo em um ambiente (servidor) de testes.

Isto significa que uma release pode ser:

alphabeta

Page 56: Maven Versioning Strategy (VR)

RELEASES

Então o que é uma release?

Release não significa que a sua versão está pronta para ir à produção.

Significa que o desenvolvedor decidiu que a este ponto do desenvolvimento o código deve ser “lockado”, ou seja, não irá se perder ou ser alterado.

Talvez o time de desenvolvimento quer apenas distribuir este código, seja como uma biblioteca para outras áreas que precisam se adiantar em suas tarefas, ou instalá-lo em um ambiente (servidor) de testes.

Isto significa que uma release pode ser:

alphabetarelease candidate

Page 57: Maven Versioning Strategy (VR)

RELEASES

Então o que é uma release?

Release não significa que a sua versão está pronta para ir à produção.

Significa que o desenvolvedor decidiu que a este ponto do desenvolvimento o código deve ser “lockado”, ou seja, não irá se perder ou ser alterado.

Talvez o time de desenvolvimento quer apenas distribuir este código, seja como uma biblioteca para outras áreas que precisam se adiantar em suas tarefas, ou instalá-lo em um ambiente (servidor) de testes.

Isto significa que uma release pode ser:

alphabetarelease candidate

patch

Page 58: Maven Versioning Strategy (VR)

RELEASES

Então o que é uma release?

Release não significa que a sua versão está pronta para ir à produção.

Significa que o desenvolvedor decidiu que a este ponto do desenvolvimento o código deve ser “lockado”, ou seja, não irá se perder ou ser alterado.

Talvez o time de desenvolvimento quer apenas distribuir este código, seja como uma biblioteca para outras áreas que precisam se adiantar em suas tarefas, ou instalá-lo em um ambiente (servidor) de testes.

Isto significa que uma release pode ser:

alphabetarelease candidate

patchproduction

Page 59: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Page 60: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Maven strategy:

<major>.<minor>.<incremental>-<qualifier>

Page 61: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Maven strategy:

<major>.<minor>.<incremental>-<qualifier>

Ex. plataforma-1.5.5-RC

Page 62: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Maven strategy:

<major>.<minor>.<incremental>-<qualifier>

Estratégia de alguns fornecedores de mercado:

<major>.<minor>.<patch>[-<type>-<attempt>]

Ex. plataforma-1.5.5-RC

Page 63: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Maven strategy:

<major>.<minor>.<incremental>-<qualifier>

Estratégia de alguns fornecedores de mercado:

<major>.<minor>.<patch>[-<type>-<attempt>]

Ex. plataforma-1.5.5-RC

Ex. plataforma-1.5.0-RC-05

Page 64: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Spring framework release keywords

Page 65: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

JBoss Community release keywords

Page 66: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

JBoss Community release keywords

Page 67: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

JBoss Community release keywords

!

major.minor.micro.Alpha[n]

major.minor.micro.Beta[n]

major.minor.micro.CR[n]

major.minor.micro.Final

Page 68: Maven Versioning Strategy (VR)
Page 69: Maven Versioning Strategy (VR)
Page 70: Maven Versioning Strategy (VR)

General Availability

Page 71: Maven Versioning Strategy (VR)

General Availability

Page 72: Maven Versioning Strategy (VR)

General Availabilityalmost final release

Page 73: Maven Versioning Strategy (VR)

General Availabilityalmost final release

Page 74: Maven Versioning Strategy (VR)

for test only

General Availabilityalmost final release

Page 75: Maven Versioning Strategy (VR)

for test only

General Availabilityalmost final release

Page 76: Maven Versioning Strategy (VR)

final tested release

for test only

General Availabilityalmost final release

Page 77: Maven Versioning Strategy (VR)

final tested release

for test only

General Availabilityalmost final release

Page 78: Maven Versioning Strategy (VR)

final tested release

for test only

for test only

General Availabilityalmost final release

Page 79: Maven Versioning Strategy (VR)

final tested release

for test only

for test only

General Availabilityalmost final releaseFor all announcements of releases of our community projects, we should not use the term GA (General Availability) or Production.

… split between community releases and long-term stable product releases (introduced in July, 2007 with EAP 4.2),

Page 80: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Temos ainda,

as keywords milestone no lugar das tradicionais alpha, beta, etc.

Também utilizado em alguns projetos da RedHat.

!

major.minor.micro.TIMESTAMP-Mn

major.minor.micro.CR[n]

major.minor.micro.Final

Page 81: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

<major>.<minor>.<patch>[-<type>-<attempt>]

<major> – é usado para indicar mudanças significativas na aplicação. Ela pode ser também uma total reescrita da versão anterior, gerando incompatibilidade de código.

Page 82: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

1 . 0 . 0

<major>.<minor>.<patch>[-<type>-<attempt>]

<major> – é usado para indicar mudanças significativas na aplicação. Ela pode ser também uma total reescrita da versão anterior, gerando incompatibilidade de código.

Page 83: Maven Versioning Strategy (VR)

VERSIONING STRATEGY<minor> – Este número indica um conjunto de pequenas alterações como a inclusão de uma nova funcionalidade, representando por exemplo os Sprints de uma 'estória', baseado na metodologia Scrum.

Esta sempre será compatível com a versão anterior!

<major>.<minor>.<patch>[-<type>-<attempt>]

Page 84: Maven Versioning Strategy (VR)

VERSIONING STRATEGY<minor> – Este número indica um conjunto de pequenas alterações como a inclusão de uma nova funcionalidade, representando por exemplo os Sprints de uma 'estória', baseado na metodologia Scrum.

Esta sempre será compatível com a versão anterior!

1 . 0 . 0

<major>.<minor>.<patch>[-<type>-<attempt>]

Page 85: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

<patch> – Indicado para representar correções de bugs que não podem esperar até que a próxima versão fique pronta. Nunca deverá incluir funcionalidades, apenas correções e deverá ser compatível com versões anteriores.

<major>.<minor>.<patch>[-<type>-<attempt>]

Page 86: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

<patch> – Indicado para representar correções de bugs que não podem esperar até que a próxima versão fique pronta. Nunca deverá incluir funcionalidades, apenas correções e deverá ser compatível com versões anteriores.

1 . 0 . 0

<major>.<minor>.<patch>[-<type>-<attempt>]

Page 87: Maven Versioning Strategy (VR)

VERSIONING STRATEGY[<type>-<attempt>] – Esta última parte é opcional e é usada para indicar que o release não é necessariamente estável (production). Não é um número, mas um texto, como por exemplo: beta-01, RC-01, GA, etc.

Quando a versão é estável, pode-se omitir este texto ou utilizar a nomenclatura respectiva, como: FINAL, RELEASE

<major>.<minor>.<patch>[-<type>-<attempt>]

Page 88: Maven Versioning Strategy (VR)

VERSIONING STRATEGY[<type>-<attempt>] – Esta última parte é opcional e é usada para indicar que o release não é necessariamente estável (production). Não é um número, mas um texto, como por exemplo: beta-01, RC-01, GA, etc.

Quando a versão é estável, pode-se omitir este texto ou utilizar a nomenclatura respectiva, como: FINAL, RELEASE

1 . 0 . 0 - RC -01

<major>.<minor>.<patch>[-<type>-<attempt>]

Page 89: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

major.minor.micro.Alpha[n]

major.minor.micro.Beta[n]

major.minor.micro.CR[n]

major.minor.micro.Final

Page 90: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

major.minor.micro.Alpha[n]

major.minor.micro.Beta[n]

major.minor.micro.CR[n]

major.minor.micro.Final

Page 91: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

major.minor.micro.Alpha[n]

major.minor.micro.Beta[n]

major.minor.micro.CR[n]

major.minor.micro.Final

Page 92: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Page 93: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Maven release plugin

Page 94: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

final do sprint #1

Maven release plugin

Page 95: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

final do sprint #1

Maven release plugin

Page 96: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

final do sprint #1 mvn release:prepare

Maven release plugin

Page 97: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

final do sprint #1 mvn release:prepare

Maven release plugin

Page 98: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

final do sprint #1 mvn release:prepare v.1.0.0.RC-01

Maven release plugin

Page 99: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

final do sprint #1 mvn release:prepare v.1.0.0.RC-01

Maven release plugin

Page 100: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

final do sprint #1 mvn release:prepare v.1.0.0.RC-01

Maven release plugin

Page 101: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

final do sprint #1 mvn release:prepare v.1.0.0.RC-01

Maven release plugin

1. Verifica se não existe alteração pendente no repositório local

Page 102: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

final do sprint #1 mvn release:prepare v.1.0.0.RC-01

Maven release plugin

1. Verifica se não existe alteração pendente no repositório local

2. Checa se existe dependencias por SNAPSHOTS

Page 103: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

final do sprint #1 mvn release:prepare v.1.0.0.RC-01

Maven release plugin

1. Verifica se não existe alteração pendente no repositório local

2. Checa se existe dependencias por SNAPSHOTS

3. É solicitado o nome da TAG, da release e da próxima versão de desenvolvimento (ENTER)

Page 104: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

final do sprint #1 mvn release:prepare v.1.0.0.RC-01

Maven release plugin

1. Verifica se não existe alteração pendente no repositório local

2. Checa se existe dependencias por SNAPSHOTS

3. É solicitado o nome da TAG, da release e da próxima versão de desenvolvimento (ENTER)

4. A branch da TAG da release atual é criada automaticamente no SVN

Page 105: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Maven release plugin

Page 106: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Maven release plugin

mvn release:prepare

Page 107: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Maven release plugin

mvn release:prepare

Page 108: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

mvn release:perform

Maven release plugin

mvn release:prepare

Page 109: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

mvn release:perform

Maven release plugin

mvn release:prepare

Page 110: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

mvn release:perform

Maven release plugin

mvn release:prepare

Page 111: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

mvn release:perform

Maven release plugin

mvn release:prepare

Page 112: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

mvn release:perform

v.1.0.0.RC-01

Maven release plugin

mvn release:prepare

Page 113: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

mvn release:perform

v.1.0.0.RC-01

Maven release plugin

mvn release:prepare

checkout da

TAG

Page 114: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

mvn release:perform

v.1.0.0.RC-01

Maven release plugin

mvn release:prepare

checkout da

TAG

Page 115: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

mvn release:perform

v.1.0.0.RC-01

Maven release plugin

mvn release:prepare

checkout da

TAG build

Page 116: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

mvn release:perform

v.1.0.0.RC-01

Maven release plugin

mvn release:prepare

checkout da

TAG

deploy

build

Page 117: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

mvn release:perform

v.1.0.0.RC-01

Maven release plugin

mvn release:prepare

checkout da

TAG

deploy

build

Page 118: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

mvn release:perform

v.1.0.0.RC-01

Maven release plugin

5. Faz o checkout do código da TAG criada anteriormente

mvn release:prepare

checkout da

TAG

deploy

build

Page 119: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

mvn release:perform

v.1.0.0.RC-01

Maven release plugin

5. Faz o checkout do código da TAG criada anteriormente

6. Executa o ciclo de vida de build do maven (clean, build, test, install)

mvn release:prepare

checkout da

TAG

deploy

build

Page 120: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

mvn release:perform

v.1.0.0.RC-01

Maven release plugin

5. Faz o checkout do código da TAG criada anteriormente

6. Executa o ciclo de vida de build do maven (clean, build, test, install)

7. Realiza o deploy do artefato instalado localmente no repositório remoto (Nexus)

mvn release:prepare

checkout da

TAG

deploy

build

Page 121: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

e agora?

Page 122: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Jenkins (CruiseControl, Hudson, etc.)

Page 123: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Jenkins (CruiseControl, Hudson, etc.)

Page 124: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Jenkins (CruiseControl, Hudson, etc.)

Page 125: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Jenkins, próximos passos:

Page 126: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Jenkins, próximos passos:

Page 127: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Jenkins, próximos passos:Configurar o Jenkins realizar o build da aplicação, executar os testes integrados, preparar a tag da versão no SVN, publicar o artefato no repositório remoto e por fim, efetuar o deploy da aplicação em ambiente de testes.

Page 128: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Jenkins, próximos passos:Configurar o Jenkins realizar o build da aplicação, executar os testes integrados, preparar a tag da versão no SVN, publicar o artefato no repositório remoto e por fim, efetuar o deploy da aplicação em ambiente de testes.

Page 129: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Page 130: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Commit

Page 131: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Commit

Page 132: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Commit

Page 133: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Commit

Page 134: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Commit

Page 135: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Commit

svn polling

Page 136: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Commit

svn polling

Page 137: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Commit

svn polling

Page 138: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Commit

svn polling

build

Page 139: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Commit

svn polling

build

Page 140: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Commit

svn polling

build

integration tests

Page 141: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Commit

svn polling

build

integration tests

Page 142: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Commit

svn polling

build

integration tests

Page 143: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Commit

deploy

svn polling

build

integration tests

Page 144: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Commit

deploy

svn polling

build

Maven release pluginintegration tests

Page 145: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Commit

deploy

svn polling

build

Maven release pluginintegration tests

Page 146: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Commit

deploy

svn polling

build

Maven release pluginintegration tests

Page 147: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Commit

deploy

svn polling

build

Maven release plugin

deployintegration tests

Page 148: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

Commit

deploy

svn polling

build

Maven release plugin

deploy

WebSphere Application Server

integration tests

Page 149: Maven Versioning Strategy (VR)

VERSIONING STRATEGY

OBRIGADO

MARCUS CARVALHO @marcus_dev


Recommended