Popular Tags:

Resolvendo Commit de Arquivos com Espaço no Nome – Linux com Eclipse

25/08/2016 at 21:49

Problema

Se o ambiente for Linux e você estiver utilizando o conector SVNKit e, houver commit de arquivos com espaço no nome, o processo não concluirá porque esse conector codifica a URL do arquivo com %2520, enquanto o correto seria apenas %20. Isso acontece por que ele codifica duas vezes a URL, na primeira vez ele troca espaços por %20, na segunda ele troca o “%” por %25, que é a codificação do “%”.

Solução

Nâo utilize o connector SVNKit, altere para JavaHL e, se o erro a seguir estive acontecendo, instale a libsvn-java.

Native JavaHL 0×00100000: Cannot load libraries: Could not initialize class org.apache.subversion.javahl.SVNCLient

Screenshot - Connector Problem

Eclipse com Maven

11/08/2016 at 23:58

Introdução

Sabendo que sair do Delphi e ir para Java exige um grande esforço, pois existe um vale entre as duas linguagens (como na foto do título teste blog, que não foi por a acaso), volto aqui para ajudar aqueles que se depararam com o tal do Maven e questionaram:

O que é isso?
Para o que serve?
É obrigatório?
Devo usar em quais casos?

Não vou me atrever a explicar tudo o que ele faz, mas posso comparar com o Delphi e dar o caminho das pedras para os iniciantes, principalmente no Eclipse, que é o principal objetivo deste artigo, tendo em vista que as outras IDE aparentam simplificar o uso do Maven (ponto para elas).

Ant

Se você esta pensando em migrar do Ant para o Maven apenas por que ele é muito usado em tutoriais e fica fácil gerenciar as dependências, não precisa, utilize o Ivy, ele é o gerenciador de dependências do Ant e o site do mvnrepository da suporte para a sua sintaxe, assim como para outros como o Gradle.

Delphi Compiler

O Maven e o Ant não são o mesmo que o dcc32.exe/bcc32.exe, ou seja, o compilador. O correspondente em java é o javac, ou o Eclipse Compiler (leia sobre eles aqui). Em Java, o processo que conhecemos por compilação, é bem mais descentralizado. Embora o Delphi também tenha a fase preliminar que transforma arquivos pas em dcu, assim como o javac transforma arquivos java em arquivos class, no dia a dia em Delphi o jargão “compilar” serve para gerar o exe.

Em java esse processo é dividido em fases que o programador controla manualmente, e é ai que o Maven entra, pois ele facilita o controle dessas fases, e a principal delas é a fase package (empacotamento), que é quando o artefato instalável finalmente é criado. Existem vários tipos de empacotamento, cada um com um layout (estrutura de pastas) predefinido, que é basicamente um zip com outra extensão (jar, war, ear, etc.).

Eclipse

Para começar com Eclipse + Maven, recomendo utilizar o plugin JBoss Tools, e a partir da página de boas vindas/novidades a Red Hat Central, selecione a opção Java EE Web Project, siga o passo a passo do tutorial e você ficará bem.

Agora, se você tentar começar um projeto pela opção File, New Project, Maven Project e depois tentar selecionar um archetype sozinho, as dores de cabeça não acabarão tão cedo, as opções são muitas, percebe-se que muita água já passou por baixo da ponte com a lista de archetypes disponíveis. Mas, de qualquer forma, se desejar, espere a lista de archetypes carregar e filtre pela palavra wildfly e selecione wildfly-javaee7-webapp-ear-blank-archetype, por exemplo.

Depois de começar a trabalhar com projetos Eclipse + Maven, lembre-se que nunca mais você poderá alterar as propriedades Build Path do projeto, tudo deverá ser feito configurando o arquivo pom.xml. Então se antes com Ant sem Ivy você que organizava a pasta com os jar das bibliotecas que seu projeto dependiam, agora o Maven fará download automático para a pasta .m2.

Outras IDE

A impressão que se tem é que o IntelliJ IDEA e o NetBeans são mais recentes e inovaram ao melhorar a experiência do usuário com o Maven, disponibilizando controles específicos, pois elas geram uma lista de goals automática baseada na leitura do pom.xml do projeto. O mais próximo disso que o M2E faz é possível ver clicando com o botão direito do mouse sobre o projeto, na opção Properties, opção Maven, subitem Lifecycle Mapping, que não serve para selecionar e executar, trata-se de apenas uma lista estática do que é possível fazer com as configurações do seu pom.xml.

Desnecessário

Analisando bem, as opções das outra IDE são perfumarias, todas as funcionalidades que o M2E disponibiliza são as úteis de dentro de uma IDE, o que estiver faltando são opções acionáveis pelo prompt (Unix Terminal/MS DOS). A opção Deploy não pode ser encontrada na lista do Run As do projeto, porque já existe o Run As, Run On Server. Caso exista alguma específica de algum plugin e seja necessário executar a partir da IDE, utilize uma Run Configuration, e para mantê-la junto ao projeto, salve-a como um arquivo .launch, detalhes de como fazer isso podem ser encontrados aqui.

Install com Deploy

A opção Run As, Install, pode ser configurada para realizar o deploy através do plugin jboss-as-maven-plugin ou wildfly-maven-plugin, basta acessar suas páginas para ver os exemplos.

Ignorar o Eclipse Compiler para Deploy

Ao que tudo indica, o Eclipse não utiliza o Maven para fazer o deploy quando a opção Run As, Run On Server é acionada. Se você quiser que o Eclipse trabalhe exatamente como as outras IDE, siga os seguintes passos:

  • Duplo clique sobre o servidor na server view
  • Dentro de Server Behavior selecione Behavior Profile
  • Altere a opção Controlled by para Management Operations

Daqui para frente utilize Run As, Maven Install, ou Debug As, Maven Install (desde que a fase install esteja configurada para realizar deploy como explicado no tópico anterior).

Infelizmente a dinâmica ficará mais complicada, dependendo do tipo de alteração, será necessário acionar o Run As, Maven Clean Verify antes.