Para fazer seu projeto fazer deploy no nexus você precisa:
Criar repositórios no nexus:
Acesse o nexus como admin e crie dois repositórios do tipo "Hosted Repository"
Configure o "Repository Policy" do primeiro como "Release" e dê o nome de nome-do-projeto-releases
Configure o "Repository Policy" do segundo como "Snapshot" e dê o nome de nome-do-projeto-snapshots
Adicionar no seu pom: (altere a URL e o nome-do-projeto)
<distributionManagement>
<repository>
<id>nome-do-projeto-releases</id>
<url>http://nexus.localhost8080.com.br/nexus/content/repositories/nome-do-projeto-releases</url>
</repository>
<snapshotRepository>
<id>nome-do-projeto-snapshots</id>
<url>http://nexus.localhost8080.com.br/nexus/content/repositories/nome-do-projeto-snapshots</url>
</snapshotRepository>
</distributionManagement>
Configurar settings.xml
Configure o setting.xml (seja no maven da sua máquina ou no Jenkins (no jenkins você pode configurar pelo managed files também))
<servers>
<server>
<id>nome-do-projeto-releases</id>
<username>user_no_nexus_com_permissao_de_deploy</username>
<password>senha_do_user</password>
</server>
<server>
<id>nome-do-projeto-snapshots</id>
<username>user_no_nexus_com_permissao_de_deploy</username>
<password>senha_do_user</password>
</server>
</servers>
Deploy na mão
Abra o terminal e rode o comando: mvn clean deploy
Deploy pelo jenkins
Mesma coisa que manual, porém configure o seu job para fazer o mvn clean deploy
Abraço!!
Adriano Schmidt
Mostrando postagens com marcador alm. Mostrar todas as postagens
Mostrando postagens com marcador alm. Mostrar todas as postagens
terça-feira, 21 de julho de 2015
segunda-feira, 11 de maio de 2015
Git - reset/revert arquivo
Fala galera,
Hoje fiz um commit e coloquei nele um arquivo q não deveria ter colocado.
Então para voltar o para uma versão antiga rodei o comando:
git checkout origin/master src/main/java/br/com/localhost8080/test01/MinhaClasse.java
Explicando o comando:
git checkout <branch ou commit onde está a versão que você quer restaurar> <caminho do arquivo>
Como eu quis alterar um commit, depois eu dei um "git commit --amend" e fiz o push novamente.
Mais detalhes em:
http://schacon.github.io/git/git-checkout.html
Abraço!
Adriano Schmidt
Hoje fiz um commit e coloquei nele um arquivo q não deveria ter colocado.
Então para voltar o para uma versão antiga rodei o comando:
git checkout origin/master src/main/java/br/com/localhost8080/test01/MinhaClasse.java
Explicando o comando:
git checkout <branch ou commit onde está a versão que você quer restaurar> <caminho do arquivo>
Como eu quis alterar um commit, depois eu dei um "git commit --amend" e fiz o push novamente.
Mais detalhes em:
http://schacon.github.io/git/git-checkout.html
Abraço!
Adriano Schmidt
segunda-feira, 23 de fevereiro de 2015
Trabalhando com tags no Git
Referência básica para trabalhar com tags:
Para listar as tags no git:
git tag
Para listar as tags a partir de um filtro:
git tag -l 'v1.0*'
Para criar uma tag:
git tag -a <nome da tag> -m "<mensagem opcional>"
git tag -a v1.0.2 -m "entrega realizada com a funcionalidade X"
Para exibir uma tag:
git show v1.0.2
Para fazer push de uma tag:
git push origin v.1.0.2
Para fazer push de todas as tags:
git push origin --tags
Para deletar uma tag:
git tag -d v1.0.2
Para fazer push da deleção da tag:
git push origin :refs/tags/v.1.0.2
Para criar uma tag de um commit antigo:
git tag -a v.1.0.2 -m "entrega da funcionalidade X" <id_do_commit>
Mais em:
http://git-scm.com/book/en/v2/Git-Basics-Tagging
http://git-scm.com/docs/git-tag
Vaaleu!!
Adriano Schmidt
Para listar as tags no git:
git tag
Para listar as tags a partir de um filtro:
git tag -l 'v1.0*'
Para criar uma tag:
git tag -a <nome da tag> -m "<mensagem opcional>"
git tag -a v1.0.2 -m "entrega realizada com a funcionalidade X"
Para exibir uma tag:
git show v1.0.2
Para fazer push de uma tag:
git push origin v.1.0.2
Para fazer push de todas as tags:
git push origin --tags
Para deletar uma tag:
git tag -d v1.0.2
Para fazer push da deleção da tag:
git push origin :refs/tags/v.1.0.2
Para criar uma tag de um commit antigo:
git tag -a v.1.0.2 -m "entrega da funcionalidade X" <id_do_commit>
Mais em:
http://git-scm.com/book/en/v2/Git-Basics-Tagging
http://git-scm.com/docs/git-tag
Vaaleu!!
Adriano Schmidt
quinta-feira, 19 de fevereiro de 2015
git cherry-pick
Fala galera \o)
Você tem um commit perdido no tempo em algum branch do seu projeto... aquele commit resolvia um bug e você gostaria de aplicá-lo em sua master... seria tão legal se fosse possível simplesmente pegar as alterações daquele commit e aplicar na master, não seria? Pois saiba que é possível :D
O git tem o comando cherry-pick... ele pega as alterações de um commit e aplica em algum lugar.
Passo 1) Identifique o ID do commit que voce quer resgatar. Ex: 25210a9e67b0d77ee54ee67d9e106175c9285f18
Passo 2) Estando na master ou onde você quer aplicar o commit, rode o commando: git cherry-pick 25210a9e67b0d77ee54ee67d9e106175c9285f18
Passo 3) Dê um: git status
Passo 4) Caso apareçam conflitos, resolva-os.
Passo 5) Dê um: git add .
Passo 6) Dê um: git cherry-pick --continue
Passo 7) Confira se está tudo OK com um: git status
Passo 8) Faça um push: git push
Pronto, resolvido :D
Agradeço ao meu brother Alfredo André Zipperer que tem me feito subir uns 3 levels nas skills de git \o)
Valeu!
Adriano Schmidt
Você tem um commit perdido no tempo em algum branch do seu projeto... aquele commit resolvia um bug e você gostaria de aplicá-lo em sua master... seria tão legal se fosse possível simplesmente pegar as alterações daquele commit e aplicar na master, não seria? Pois saiba que é possível :D
O git tem o comando cherry-pick... ele pega as alterações de um commit e aplica em algum lugar.
Passo 1) Identifique o ID do commit que voce quer resgatar. Ex: 25210a9e67b0d77ee54ee67d9e106175c9285f18
Passo 2) Estando na master ou onde você quer aplicar o commit, rode o commando: git cherry-pick 25210a9e67b0d77ee54ee67d9e106175c9285f18
Passo 3) Dê um: git status
Passo 4) Caso apareçam conflitos, resolva-os.
Passo 5) Dê um: git add .
Passo 6) Dê um: git cherry-pick --continue
Passo 7) Confira se está tudo OK com um: git status
Passo 8) Faça um push: git push
Pronto, resolvido :D
Agradeço ao meu brother Alfredo André Zipperer que tem me feito subir uns 3 levels nas skills de git \o)
Valeu!
Adriano Schmidt
Alterar autor commit git
Para alterar o autor do seu último commit no Git basta fazer:
git commit --amend --author "Novo nome <email@email.com>"
Para alterar o nome e email em todos os commits de uma determinada pessoa é só fazer assim:
git filter-branch -f --commit-filter 'if [ "$GIT_AUTHOR_NAME" = "Adriano Ximit" ];
then export GIT_AUTHOR_NAME="Adriano Schmidt"; export GIT_AUTHOR_EMAIL=adriano@localhost8080.com.br;
fi; git commit-tree "$@"'
E assim também (pois caso contrário você só alterou o autor, mas o commiter não):
git filter-branch -f --commit-filter 'if [ "$GIT_COMMITTER_NAME" = "Adriano Ximit" ];
then export GIT_COMMITTER_NAME="Adriano Schmidt"; export GIT_COMMITTER_EMAIL=adriano@localhost8080.com.br;
fi; git commit-tree "$@"'
Depois de alterar você tem que dar um push... provavelmente com um --force
git push --force
Fontes:
http://stackoverflow.com/questions/750172/change-the-author-of-a-commit-in-git
http://stackoverflow.com/questions/4493936/git-could-i-change-my-name-and-surname-in-all-previous-commits
Abraço!!
Adriano Schmidt
Para alterar o nome e email em todos os commits de uma determinada pessoa é só fazer assim:
git filter-branch -f --commit-filter 'if [ "$GIT_AUTHOR_NAME" = "Adriano Ximit" ];
then export GIT_AUTHOR_NAME="Adriano Schmidt"; export GIT_AUTHOR_EMAIL=adriano@localhost8080.com.br;
fi; git commit-tree "$@"'
E assim também (pois caso contrário você só alterou o autor, mas o commiter não):
git filter-branch -f --commit-filter 'if [ "$GIT_COMMITTER_NAME" = "Adriano Ximit" ];
then export GIT_COMMITTER_NAME="Adriano Schmidt"; export GIT_COMMITTER_EMAIL=adriano@localhost8080.com.br;
fi; git commit-tree "$@"'
Depois de alterar você tem que dar um push... provavelmente com um --force
git push --force
Fontes:
http://stackoverflow.com/questions/750172/change-the-author-of-a-commit-in-git
http://stackoverflow.com/questions/4493936/git-could-i-change-my-name-and-surname-in-all-previous-commits
Abraço!!
Adriano Schmidt
quinta-feira, 5 de fevereiro de 2015
The change could not be merged due to a path conflict
Estou em um projeto que usa o Gerrit como revisor de código, é muito bom!!
E ao revisar e aprovar um commit deu o erro abaixo pois outro commit foi aprovado antes e deu conflito já que os dois commits mexeram na mesma linha de um arquivo.
Ou também pode acontecer o erro:
Para resolver você tem que fazer um rebase localmente e resolver os conflitos.
Passo 1) git fetch origin <nome_da_branch>
Passo 2) git fetch <url> && git checkout FETCH_HEAD (esse comando você pega no próprio gerrit)
Passo 3) git rebase origin/<nome_da_branch>
Passo 4) git status (ao rodar esse comando vai mostrar os arquivos em conflito, resolva os conflitos abrindo os arquivos e ajustando o que for necessário)
Passo 5) git add .
Passo 6) git rebase --continue
Passo 7) git push origin HEAD:refs/for/<nome_da_branch> (esse é o push normal quando você manda algo para o Gerrit)
Passo 8) git checkout <nome_da_branch> (apenas para voltar a sua branch e poder voltar a trabalhar)
Se o rebase for muito grande você pode fazer um cherry-pick
Para uma explicação mais detalhada recomendo a leitura desse artigo:
http://www.mediawiki.org/wiki/Gerrit/resolve_conflict
Porém, nesse artigo é usado o git-review para fazer o fetch/checkout (Passo 2) e o push (Passo 7). Ignore essa parte e faça conforme eu mostrei.
Para estudar sobre o rebase: http://git-scm.com/book/pt-br/v1/Ramifica%C3%A7%C3%A3o-Branching-no-Git-Rebasing
Para estudar sobre o Gerrit: https://code.google.com/p/gerrit/
Abraço!
Adriano Schmidt
E ao revisar e aprovar um commit deu o erro abaixo pois outro commit foi aprovado antes e deu conflito já que os dois commits mexeram na mesma linha de um arquivo.
Code Review - Error
The change could not be merged due to a path conflict.
Please rebase the change locally and upload the rebased commit for review.
Ou também pode acontecer o erro:
The change could not be rebased due to a path conflict during merge.
Para resolver você tem que fazer um rebase localmente e resolver os conflitos.
Passo 1) git fetch origin <nome_da_branch>
Passo 2) git fetch <url> && git checkout FETCH_HEAD (esse comando você pega no próprio gerrit)
Passo 3) git rebase origin/<nome_da_branch>
Passo 4) git status (ao rodar esse comando vai mostrar os arquivos em conflito, resolva os conflitos abrindo os arquivos e ajustando o que for necessário)
Passo 5) git add .
Passo 6) git rebase --continue
Passo 7) git push origin HEAD:refs/for/<nome_da_branch> (esse é o push normal quando você manda algo para o Gerrit)
Passo 8) git checkout <nome_da_branch> (apenas para voltar a sua branch e poder voltar a trabalhar)
Se o rebase for muito grande você pode fazer um cherry-pick
Para uma explicação mais detalhada recomendo a leitura desse artigo:
http://www.mediawiki.org/wiki/Gerrit/resolve_conflict
Porém, nesse artigo é usado o git-review para fazer o fetch/checkout (Passo 2) e o push (Passo 7). Ignore essa parte e faça conforme eu mostrei.
Para estudar sobre o rebase: http://git-scm.com/book/pt-br/v1/Ramifica%C3%A7%C3%A3o-Branching-no-Git-Rebasing
Para estudar sobre o Gerrit: https://code.google.com/p/gerrit/
Abraço!
Adriano Schmidt
sexta-feira, 30 de janeiro de 2015
Quebra de linha no GIT
Opa : )
No projeto que estou tem arquivos com quebra de linha CRLF (\r\n que é o padrão do Windows) e outros com LF (\n que é o padrão do linux)..
E o Git faz uma conversão dos caracteres de quebra de linha no momento que você adiciona o arquivo ao index (git add)
Então tenho que alterar a propriedade autocrlf no git dependendo do arquivo que vou mexer.. para que seja feita a conversão de quebra de linha de forma adequada.
Os comando que eu uso são esses:
Para arquivos com CRLF:
git config --global --unset core.autocrlf && git config --global --add core.autocrlf true
Para arquivos com LF
git config --global --unset core.autocrlf && git config --global --add core.autocrlf false
Para entender melhor: http://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#Formatting-and-Whitespace
Abraço!
Adriano Schmidt
No projeto que estou tem arquivos com quebra de linha CRLF (\r\n que é o padrão do Windows) e outros com LF (\n que é o padrão do linux)..
E o Git faz uma conversão dos caracteres de quebra de linha no momento que você adiciona o arquivo ao index (git add)
Então tenho que alterar a propriedade autocrlf no git dependendo do arquivo que vou mexer.. para que seja feita a conversão de quebra de linha de forma adequada.
Os comando que eu uso são esses:
Para arquivos com CRLF:
git config --global --unset core.autocrlf && git config --global --add core.autocrlf true
Para arquivos com LF
git config --global --unset core.autocrlf && git config --global --add core.autocrlf false
Para entender melhor: http://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#Formatting-and-Whitespace
Abraço!
Adriano Schmidt
sábado, 11 de outubro de 2014
Alterar usuário/senha/url no GIT
Para alterar usuário ou senha de projeto no GIT basta seguir os seguinte passos:
Acesse pelo prompt de comandos a pasta do seu projeto.
Rode o comando abaixo para ver o usuário utilizado:
$ git config --get remote.origin.url
http://AdrianoSchmidt:minhasenha@git.localhost8080.com.br/git/projeto/projeto.git
Rode o comando abaixo para remover o usuário e senha (na verdade remove a URL inteira)
$ git config --unset remote.origin.url
Rode o primeiro comando novamente e veja que não existe mais valor para essa variável
$ git config --get remote.origin.url
Rode o comando abaixo atualizando o usuário ou senha:
$ git config --add remote.origin.url http://AdrianoSchmidt:novasenha@git.localhost8080.com.br/git/projeto/projeto.git
Verifique novamente e veja se está como desejado:
$ git config --get remote.origin.url
http://AdrianoSchmidt:novasenha@git.localhost8080.com.br/git/projeto/projeto.git
Ou rode o comando abaixo e edite direto a propriedade:
$ git config --edit
Abraços!
Adriano Schmidt
Acesse pelo prompt de comandos a pasta do seu projeto.
Rode o comando abaixo para ver o usuário utilizado:
$ git config --get remote.origin.url
http://AdrianoSchmidt:minhasenha@git.localhost8080.com.br/git/projeto/projeto.git
Rode o comando abaixo para remover o usuário e senha (na verdade remove a URL inteira)
$ git config --unset remote.origin.url
Rode o primeiro comando novamente e veja que não existe mais valor para essa variável
$ git config --get remote.origin.url
Rode o comando abaixo atualizando o usuário ou senha:
$ git config --add remote.origin.url http://AdrianoSchmidt:novasenha@git.localhost8080.com.br/git/projeto/projeto.git
Verifique novamente e veja se está como desejado:
$ git config --get remote.origin.url
http://AdrianoSchmidt:novasenha@git.localhost8080.com.br/git/projeto/projeto.git
Ou rode o comando abaixo e edite direto a propriedade:
$ git config --edit
Abraços!
Adriano Schmidt
quarta-feira, 18 de junho de 2014
Trabalhando com 2 repositórios Git
Pessoal.. temos um repositório Git na minha empresa e todos os desenvolvedores fazem commit e push lá. E de tempos em tempos fazemos o push desses fontes para o repositório Git que fica no nosso cliente.
Vou explicar uma estratégia simples e comumente usada nesse cenário.
Com essa estratégia que vou explicar você mantém o histórico de commits e permite a realização de merges caso outras pessoas commitem no mesmo projeto no repositório do cliente.
Seguinte:
No Git, cada commit tem um id.. que é um hash único...
Quando você tem 2 repositórios, um commit deve ter o mesmo id nos 2 repositórios...
O histórico de commits de um, será o mesmo no outro... geralmente é muito importante manter o histórico dos commits...
Para isso, você adiciona dois remotes no seu projeto (no nosso caso era só adicionar o segundo, já que o primeiro já tínhamos)
git remote add origin http://www.minhaempresa.com.br/git/projeto.git
git remote add cliente http://www.meucliente.com.br/git/projeto.git
Depois é só você escolher onde quer fazer push
git push origin master
ou
git push cliente master
Você pode até dar um git config e definir qual dos dois remotes é o padrão para quando você digitar apenas "git push" ele saber qual usar.
É isso!
Abraços!
Adriano Schmidt
Vou explicar uma estratégia simples e comumente usada nesse cenário.
Com essa estratégia que vou explicar você mantém o histórico de commits e permite a realização de merges caso outras pessoas commitem no mesmo projeto no repositório do cliente.
Seguinte:
No Git, cada commit tem um id.. que é um hash único...
Quando você tem 2 repositórios, um commit deve ter o mesmo id nos 2 repositórios...
O histórico de commits de um, será o mesmo no outro... geralmente é muito importante manter o histórico dos commits...
Para isso, você adiciona dois remotes no seu projeto (no nosso caso era só adicionar o segundo, já que o primeiro já tínhamos)
git remote add origin http://www.minhaempresa.com.br/git/projeto.git
git remote add cliente http://www.meucliente.com.br/git/projeto.git
Depois é só você escolher onde quer fazer push
git push origin master
ou
git push cliente master
Você pode até dar um git config e definir qual dos dois remotes é o padrão para quando você digitar apenas "git push" ele saber qual usar.
É isso!
Abraços!
Adriano Schmidt
Assinar:
Postagens (Atom)