A Magia do Maven – Um projeto J2SE – parte 1

November 11, 2009

Antes de começar meu POST, gostaria de parabenizar a faculdade UNIME e aos profissionais da Bahia pelo evento: www.linguagil.com.br . Realmente esse evento promete, começando amanhã com cursos e vários nomes da comunidade de Analistas de todo o Brasil, palestrando, ministrando mini-cursos. Bom hoje no meu post irei falar sobre o Apache Maven que é nada mais nada menos do que uma ferramenta de automação e gerenciamento de projetos. Eu utilizo o Eclipse para o desenvolvimento de aplicativos Java e seus plugins, e sempre que precisava, eu gerava por ele os projetos e adicionava as libs na “mão”. Um puta grande trabalho diga-se de passagem. Então precisei fazer o desenvolvimento Jersey, que um post para outro dia. E pesquisei em como gerar projetos Jersey e acabei encontrando na comunidade o Maven que auxilia na geração utilizando ARCHETYPES e é muito útil.

Antes de tudo instale o Maven2 no seu computador, depois para gerar um projeto básico como por exemplo. A diferença dele para o Ant é simplicidade e escalabilidade, e achei muito mais útil .

Um exemplo de um arquivo pom.xml abaixo.

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.sonatype.mavenbook</groupId>
  <artifactId>my-project</artifactId>
  <version>1.0</version>
</project>

Para instalar o Maven no windows: Instale por exemplo aqui :

C:\Program Files\apache-maven-2.2.1 

depois de instalado set as variáveis de ambiente

C:\Users\tobrien > set M2_HOME=c:\Program Files\apache-maven-2.2.1
C:\Users\tobrien > set PATH=%PATH%;%M2_HOME%\bin

Para instalar no Linux:
Instale e export as variáveis de ambiente conforme abaixo:

export M2_HOME=/usr/local/maven
export PATH=${M2_HOME}/bin:${PATH}

Existe um plugin para o eclipse que se chama Maven2Eclipse, quem quiser é só baixar no site da Sonatype ou anexar esse link no eclipse e depois instalar: http://m2eclipse.sonatype.org/

Para gerar um exemplo simples e genérico de um projeto Maven basta adicionar isto na linha de comando:

$ mvn archetype:generate -DgroupId=org.sonatype.mavenbook.ch03 \
                                         -DartifactId=simple \
                                         -DpackageName=org.sonatype.mavenbook \
                                         -Dversion=1.0-SNAPSHOT
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'archetype'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO]    task-segment: [archetype:generate] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] Preparing archetype:generate
[INFO] No goals needed for project - skipping
[INFO] Setting property: velocimacro.messages.on => 'false'.
[INFO] Setting property: resource.loader => 'classpath'.
[INFO] Setting property: resource.manager.logwhenfound => 'false'.
[INFO] [archetype:generate {execution: default-cli}]
[INFO] Generating project in Interactive mode
[INFO] No archetype defined. Using maven-archetype-quickstart \
       (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
...
12: internal -> maven-archetype-mojo (A Maven Java plugin development project)
13: internal -> maven-archetype-portlet (A simple portlet application)
14: internal -> maven-archetype-profiles ()
15: internal -> maven-archetype-quickstart ()
16: internal -> maven-archetype-site-simple (A simple site generation project)
17: internal -> maven-archetype-site (A more complex site project)
18: internal -> maven-archetype-webapp (A simple Java web application)
19: internal -> jini-service-archetype (Archetype for Jini service project creation)
Choose a number: (...) 15: : 15
Confirm properties configuration:
groupId: org.sonatype.mavenbook.ch03
artifactId: simple
version: 1.0-SNAPSHOT
package: org.sonatype.mavenbook.ch03
 Y: : Y
...
[INFO] Parameter: groupId, Value: org.sonatype.mavenbook.ch03
[INFO] Parameter: packageName, Value: org.sonatype.mavenbook.ch03
[INFO] Parameter: package, Value: org.sonatype.mavenbook.ch03
[INFO] Parameter: artifactId, Value: simple
[INFO] Parameter: basedir, Value: /private/tmp
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] BUILD SUCCESSFUL

A estrutura será basicamente essa

simple/
simple/pom.xml
      /src/
      /src/main/
          /main/java
      /src/test/
          /test/java

Para compilar entre na pasta

cd simple
mvn install

Depois disso para rodar é simples, dentro do projeto tem uma pasta target, quando é compilado ou gerado algum war o target é para onde irá o seu jar nesse caso ou war, ou ear e por ae vai…

$ java -cp target/simple-1.0-SNAPSHOT.jar org.sonatype.mavenbook.App
Hello World!

Esse seria o exemplo do pom.xml do projeto

<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.sonatype.mavenbook.ch03</groupId>
  <artifactId>simple</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>simple</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

Bom por hoje é só, vou preparar um material para fazer algo do tipo do site do scriptlandia.

Obrigado aos navegantes e deixe suas sugestões de artigo.


PUJ

September 23, 2009

Sobre o PUJ:

http://kenai.com/projects/puj/pages/PUJ-BR
http://www.youtube.com/watch?v=AjZgx_i85q0

O Prêmio Universitário Java – PUJ é uma competição que acontece no
Ceará a três anos e agora vai ser repetido em Goiás e na Bahia…. e
eu espero que continue crescendo e comece a ser implementado em todos
os estados brasileiros 🙂

funciona assim:

– os professores reunem os melhores trabalhos de seus alunos e
submetem à competição
– estes trabalhos recebem notas de profissionais sênior do mercado local de
TI
– o trabalho com melhor média ganha 🙂

Ano passado o campeão cearense foi com tudo pago para assistir ao
Devoxx na Bélgica 🙂 e este ano o primeiro prêmio leva o campeão à
Califõrnia para assistir ao JavaOne 🙂


O Primeiro Curso de Ciências da Computação do Brasil

September 23, 2009

O primeiro curso de CC do Brasil completa 40 anos. Quem puder ir recomendo.

http://www.ic.unicamp.br/ic40anos/


Mais uma sexta-feira…

August 28, 2009

Bom primeiramente vou começar aqui que acordei umas 6:38 da manhã com um barulho de alguém no microfone, parecendo sindicato, falando alguma coisa, e não consegui dormir por longas e extensiva uma hora, levantei 7:30 e chamei o Rafael, meu roommate. Fui tomar banho e rafael fazer o café da manhã, até ae blz… só que rafael tava indo para Varginha, então tava levando um arsenal de coisas, como notebook, deixei ele em frente a IBM e voilá… vim para UNICAMP para trabalhar. No caminho, como estou com carro da minha namorada parei para trocar óleo, bateram no meu novamente rsrsrs…. bom hj vou dar aula depois dormir pq amanhã cedo vou dar aula novamente… fuizz…


Computers stuffs

May 28, 2009

Bom segunda-feira comecei uma nova rotina de trabalho, preciso ainda ver como mudar o layout desse blog, apesar de eu não manter uma regularidade ainda nele. Bom depois de 1 ano e 2 meses trabalhando na IBM em uma conta nos EUA e com C++, XSL, XML, JavaScript Client and Server Side, I decided iwas time to go. Pois é sai da IBM, estou fazendo uma disciplina como aluno especial na UNICAMP, estou gostando da matéria, o professor é ótimo, a estrutura da faculdade nem se fala, é uma das melhores do Brasil em termos de estruturas e professores. Nunca vi algo parecido. Foi então que surgiu a oportunidade de vim trabalhar em uma encubadora na UNICAMP, a SOFTEX. E desde segunda feira cá estou eu. 🙂

Primeira tarefa, árdua e difícil…. eheheheh Pesquisar algum CMS que seja open source e sem licença GPL e que seja em Java… Ufa… depois de um ano e dois meses trampando no terminal VI com C++ vou voltar a trabalhar com Java, era tudo que eu queria. Então galera no evoluir das coisas aqui, vou postar um tutorial ensinando step-by-step o melhor dos CMS e como configurar e instalar pois os materiais estão muito picados e é bom pq fica concentradoem um único lugar. Bom é isso pessoal, até a próxima…


A poesia prevalece

April 16, 2009

O maior sucesso de música independente que conheci semana passada se chama, O Teatro Mágico, uma banda que realmente tem letras de verdade, como é possível, músicos que cantam “Eguinha pocotó” e “Vai Lacraia” conseguem sucesso rápido, enquanto realmente bandas de verdade como O Teatro Mágico que traz letras realmente tocantes tanto quanto a realidade da música ZAZULEJO  como música sobre Poesia… Bom quem quiser fica uma dica, http://www.oteatromagico.mus.br lá a música é livre para se fazer download, fui no show de lançamento do DVD deles na Saraiva no Iguatemi em Campinas e foi maior sucesso, e claro comprei um DVD e um CD para ajudar o famoso Fernando que diga-se de passagem possui um talento ímpar.

Fica aqui um trecho da poesia de Fernando do Teatro Mágico:

"Sem horas e sem dores
Respeitável público pagão
Bem vindo ao teatro mágico!
sintaxe a vontade..."
 
"Sem horas e sem dores
Respeitável público pagão
a partir de sempre
toda cura pertence a nós
toda resposta e dúvida
todo sujeito é livre para conjugar o verbo que quiser
todo verbo é livre para ser direto ou indireto
nenhum predicado será prejudicado
nem tampouco a vírgula, nem a crase nem a frase e ponto final!
afinal, a má gramática da vida nos põe entre pausas, entre vírgulas
e estar entre vírgulas é aposto
e eu aposto o oposto que vou cativar a todos
sendo apenas um sujeito simples
um sujeito e sua oração
sua pressa e sua prece
que a regência da paz sirva a todos nós... cegos ou não
que enxerguemos o fato
de termos acessórios para nossa oração
separados ou adjuntos, nominais ou não
façamos parte do contexto da crônica
e de todas as capas de edição especial
sejamos também o anúncio da contra-capa
mas ser a capa e ser contra-capa
é a beleza da contradição
é negar a si mesmo
e negar a si mesmo
é muitas vezes, encontrar-se com Deus
com o teu Deus
Sem horas e sem dores
Que nesse encontro que acontece agora
cada um possa se encontrar no outro
até porque...
 
tem horas que a gente se pergunta...
por que é que não se junta
tudo numa coisa só? "

Ano Novo, Vida Nova!!!

January 8, 2009

Pois é ano novo começa, nós fazemos sempre aquelas promessas e começamos o ano sempre motivado a sempre melhorar e fazendo promessas. Por isso aqui vai um poema do mestre Carlos Drummond de Andrade que traduz tudo para mim, pois a vezes fazemos promessas de que iremos fazer isso ou aquilo e chega o final do ano e acabamos não fazendo nada, tudo não passa de promessas de Ano Novo.

ANO QUE VEM
Carlos Drummond de Andrade
“No ano que vem,
Vou fazer um check-up,
Reformar os meus ternos,
Vou trocar os meus móveis,
Viajar no inverno,
Como convém.

No ano que vem,
Vou fazer vestibular,
Vou tocar clarineta,
Aprender a dançar valsa Fox-trot ou salsa,
Como convém.

No ano que vem,
Vou tratar dos meus dentes,
Visitar uns parentes,
Vou limpar o porão,
Vou casar na igreja,
Como convém.

No ano que vem,
Vou pagar minhas dívidas,
Apagar minhas dúvidas,
E trocar meu carro,
E largar o cigarro,
Como convém.

Vou plantar uma rosa,
como convém
No ano que vem
E escrever um romance,
E fazer exercício,
Desde o início,
Como convém.

E fazer uma plástica,
O ano que vem,
E ficar destemido,
Decorar um poema,
E escrever pra você,

Como convém.
No ano que vem,
Vou soltar busca-pé,
Vou comer manga espada,
E sentar na calçada até.
E vou me converter
no ano que vem,
Registrar a escritura,
Vou pagar promessa,
E andar mais depressa
Como convém.

No ano que vem,
Vou fazer regime,
Viajar para a França,
E estudar esperanto,
E entrar para a política,
E me candidatar,
Por que não?

Se não der, no entanto
Neste ano que vem,
Vou deixar de cobrança
Do que fiz ou não fiz,
Neste ano que vem
Quero como convém,

Ser apenas, Feliz!”

Bom o recado está dado, para galera que visita meu blog.  Aos programadores de plantão , seguinte, dia 11 de Janeiro de 2009 começará um curso de Java e achei interessante colocar o link aqui. Provavelmente eu estarei fazendo pois esse ano quero me focar em me preparar para fazer o SCJP de Java e sabe como é preciso cumprir esse objetivo e não fazer como o poema fazer coisas só quando convém. Nós temos tantas objetivos na vida, pois o tempo é curto, quem dera o dia tivesse mais de 24 horas, seria muito fácil, mas as coisas hoje em dia são corridas demais… Tudo voa, tudo é rápido!!!! Infelizmente mal temos tempo para diversão, lazer, família… Cada vez mais precisamos nos especializar e esquecemos que não somos máquinas e sim seres humanos. Desde o ano que me formei da faculdade até esse último ano de 2008 me diverti muito e deixei de lado um pouco os estudos. Comecei o ano de 2009 focado na academia e minha certificação. Keep going because it´s a long way.

Segue o link do curso de Java:

http://www.javapassion.com/javaintro/

ABraços e até a próxima