terça-feira, 30 de setembro de 2008

Por dentro do Maven2

Como instalar o Maven2
Para instalar o maven2 basta baixar o arquivo do seguinte site: http://maven.apache.org/download.html
Após, descompacte o arquivo em sua máquina e crie uma variavel de ambiente para o Maven2, feito isso você pode testar o maven com o seguinte comando: mvn –version
Se você instalou o maven de forma correta você terá uma tela similar a esta.



Por dentro do Maven2:
Maven2 é uma ferramenta de linha de comando que tem por finalidade contruir, testar, gerar relatóriose empacotar projetos em Java. Provê muitas features que auxiliarão o desenvolvimento do seu projeto.


Estrutura padronizada de diretório: Cada projeto que usa Maven2 terá a mesma estrutura de diretório, isto facilita as coisas para desenvolvedores quando trabalham em múltiplos projetos, pois sempre materá o mesmo padrão de nomes e a mesma organização.



Arquitetura orientada a plug-ins: Cada feature do Maven2 é gerada por plugin, logo podemos dizer que o Maven é orientada a plugins. Não importa se a feature é compilar classes ou utilizar o web-container. Se a uma feature estiver sendo usada pela primeira vez, o plug-in será baixado de um repositório; você não precisa mais obter manualmente todas as partes antes de começar a trabalhar, pois o maven faz isso pra você.



Gerenciamento de dependência: Quando dependências forem descritas no arquivo de configuração do Maven2, elas serão acessadas de um repositório local ou baixadas do repositório local durante o processo de construção (da mesma forma que os plugins do Maven2).



Gerenciamento de Escopo: O pacote final de distribuição contém apenas os elementos exigidos. Código de teste e dependências que não são necessárias (ou providas por servidores de aplicativos) não serão inclusos no release da aplicação.



Arquétipos (Archetype): O plug-in de arquétipos permite que os desenvolvedores criem um template default de implementação para categoria do projeto. Este é então usado para criar um novo projeto rapidamente sem a necessidade de criar uma estrutura, criar arquivos de configuração e codificar as classes padrões e testes apartir do zero.



No próximo post iremos ver como usar os arquétipos para facilitar o nosso trabalho, e vamos criar uma aplicação em Struts2 e ver o quanto o Maven2 e Struts2 podem deixar o nosso processo Web rápido e fácil.


Fontes utilizadas para este post: Pratical Apache Struts2 Web 2.0 Projects, Ian Roughley (Recomendo a leitura) e http://maven.apache.org (muito bom para estudo e aprofundamento em Maven).

domingo, 21 de setembro de 2008

Ferramentas para auxiliar a produtividade

É sem dúvida que o desenvolvimento de software tem cada vez mais se tornado simples e rápido. Não que as IDEs tenham mudado, mas é que o mercado atual exige uma postura mais ágil das empresas. Não quero aqui defender metodologias ageis como Scrum, XP, Crystal etc... O intuito deste blog, como já disse é mostrar que com o Java pode se ser tão produtivo quanto Rails ou outros frameworks, basta apenas ter as ferramentas certas ao seu alcance.

Maven2:
É sem dúvida alguma a ferramenta mais importante para desenvolver aplicações em Java.Surgiu da necessidade de reuso de código e da cansativa configuração excessiva de XMLS (Ant) para geração de builds. Como a apache vinha perdendo muito tempo criando e mantendo códigos de builds para seus projetos resolveram criar o Maven.
O Maven é uma ferramenta para gerenciamento de projetos Java, e posso dizer por experiência própria que é muito útil.

Vamos a um exemplo prático:

Como criar uma aplicação com o Maven2 para Struts 2?

mvn archetype:create -DgroupId=com.knowtec.s2 -DartifactId=app -DarchetypeGroupId=org.apache.struts -DarchetypeArtifactId=struts2-archetype-starter -DarchetypeVersion=2.0.11.2-SNAPSHOT -DremoteRepositories=http://people.apache.org/maven-snapshot-repository 


Este exemplo serve para criar um projeto inicial em Struts 2, caso queira estudar mais clique aqui.

Com este código você poderá criar a estrutura do projeto para sua aplicação. É claro que o Maven2 não é tão fácil como o gerenciamento de projeto do RoR, mas ele ajuda e muito o gerenciamente de projetos java e também a velocidade que você cria sua estrutura de projeto.


No proximo post, irei detalhar cada comando do Maven2 e mostrarei como é fácil criar um projeto com Struts2 + Maven2 em menos de 1 minuto.

Abraços e Be agile dude!

domingo, 14 de setembro de 2008

Desenvolver com Java pode ser ágil?

Olá, primeiramente me permitam ter um espaço para justificar o porque deste blog. Atualmente venho desenvolvendo aplicações em Java e ouço muito falarem que Java não é produtivo, que desenvolver com Java é lento e que a moda hoje é adoção de frameworks baseado em Rails. Tanto venho ouvindo isso que me senti obrigado a comprar um livro de Rails pra estudá-lo mais profundamente e tentar entender suas features de forma mais clara. Bom acho que entendi até certo ponto, mas ainda assim prefiro o Java, não sei se por um certo puritanismo, ou pela "portabilidade", mas ainda continuo pensando em java.
Atualmente com o movimento Ágil crescendo, vemos linguagens de Script como PHP e Ruby crescendo, e nisso alguns comentários que Java vem perdendo força e etc. Realmente não dá pra negar que Ruby ou melhor o RoR (Ruby on Rails) vem ganhando força e adeptos, até a própria Sun está se unindo ao RoR.
Também fica impossível negar que o desenvolvimento de aplicações com RoR não seja fácil, rápido e indolor, isso, infelizmente não dá pra negar, mas por outro lado e no meu singelo ponto de vista, Java ainda tem grandes vantagens sobre linguagens de scripting e a primeira delas é:
1) Java é portavel;
2) Java é robusto e já se tornou consolidado no mercado, não há como negar isso;
E pra finalizar podemos ainda dizer que possuí a maior comunidade de desenvolvedores do mundo. Mas enfim, será que podemos ser Ageis com Java?

R: Isso iremos ver isso conforme forem acontecendo os Pots neste blog, mas já adianto que sim, realmente podemos ser ágeis com Java e não abrir mão de uma plataforma tão robusta e confiável quanto é Java.

Bom por hoje é só...
Até o próximo post, no qual veremos as ferrementas e frameworks que nos auxiliam a ser tão produtivos quanto as linguages de scripting e frameworks baseado em Rails.

Be agile dude!