Mostrando postagens com marcador java. Mostrar todas as postagens
Mostrando postagens com marcador java. Mostrar todas as postagens

segunda-feira

Criando um projeto Maven no Linux

O que é Maven?

Maven é uma ferramenta da Apache Software Foundation usada para gerenciamento e automação de projetos em Java. Com ele você consegue gerenciar com mais facilidade as dependências do seu projeto. Ele é similar ao Ant, também da apache porém é mais fácil de configurar.

O Maven centraliza as informações do projeto em um arquivo chamado pom.xml (Project Object Model). Neste arquivo são descritos dados como: nome do projeto, informações dos desenvolvedores, dados do repositório e sistema de controle de versão, dependências de bibliotecas externas entre outros…

Instalando o Maven

Para instalar o maven em seu ambiente de trabalho digite o seguinte comando no console:

sudo apt-get install maven2

Ao instalar o maven2, ele cria um repositório em sua máquina que pode ser acessado através do comando:

cd ~/.m2/repository

Neste repositório ele colocará todas as bibliotecas que você declarar nos pom.xml das suas aplicações. O interessante é que estas aplicações ficam minúsculas no controle de versão, já que as bibliotecas estão centralizadas no maven e não precisam mais acompanhar os fontes dos projetos.

No maven, toda vez que você compila a aplicação ele executa o download daquelas libs declaradas que não constam no repositório local e, por isso, se você baixar os fontes do projeto em outra máquina, basta instalar o maven e ele resolverá todas as dependências para você.

Agora que o ambiente está preparado, vamos criar a pasta do projeto?

Crie e acesse a pasta que receberá nosso projeto maven. ex:

mkdir helloworld
cd helloworld

O que são archetypes?

O Maven trabalha com archetypes ou arquétipos que tem por significado, segundo o site http://www.eon.com.br/unilae/unil351.htm, padrão original ou modelo, a partir do qual outras coisas da mesma natureza são feitas. Protótipo Ideal das coisas, idéia que serve de modelo em relação a outras. Ou seja, você cria projetos utilizando modelos pré-definidos segundo a necessidade e o archetype se encarrega de organizar toda a estrutura inicial. Para um projeto web, por exemplo, o archetype montaria a seguinte estrutura de pastas:

  • /pom.xml
    • src
      • main
        • java
        • resources
        • webapp
      • test
        • java
        • resources
        • webapp
  • readme.txt
  • license.txt
Esta estrutura é um padrão para projetos java web. Dentro da pasta raiz '/' não deve existir nada além do pom.xml, o src, o readme.txt e o license.txt. Todas as classes java devem ficar dentro de /src/main/java. Todos os arquivos relativos a web (jsp, html, xhtml) devem ficar dentro de /webapp e os demais arquivos, como os .properties, devem ficar dentro de /resources.

Se o seu projeto for utilizar mais de uma linguagem de programação, como por exemplo, Java e Ruby, você deve criar uma pasta para os códigos ruby no mesmo nível da pasta Java. ex:

  • /pom.xml
    • src
      • main
        • java
        • ruby
        • resources
        • webapp
      • test
        • java
        • ruby
        • resources
        • webapp
  • readme.txt
  • license.txt
A pasta test contém a mesma estrutura da pasta main, mas, como o próprio nome sugere, é utilizada apenas para testes.

Quando você compila um projeto no maven com o mvn compile, ele cria uma pasta target no nível do /src para publicar a aplicação, por isso, quando for remeter seu projeto para o repositório do controle de versão, não envie esta pasta, execute o comando mvn clean e ele limpará o projeto deletando os arquivos desnecessários.

Agora que você conhece o archetype crie o projeto Maven através do comando:

mvn archetype:generate

Este comando, archetype:generate, irá iniciar um wizard para a criação do projeto. O processo é muito intuitivo basta apenas entender o que significam os termos que serão solicitados durante a criação. São eles:

groupId : domínio do fabricante ex: br.com.fabriciojf;

artifactId : nome do projeto ex: helloworld;

versao : versão do projeto. O maven utiliza o padrão '1.0 SNAPSHOT' para a versão corrente em desenvolvimento, por isso, é bom utilizarmos o mesmo para o nosso projeto;

package : nome do pacote java que deverá ser gerado inicialmente ex: br.com.fabriciojf.helloworld;

Após esses passos, serão listados os archetypes disponíveis no repositório oficial do maven. Você deve escolher a opção desejada e pressionar Y. Pronto, o projeto já está criado. Agora podemos acrescentar suas dependências no pom.xml e criar os arquivos da aplicação em sua ide de preferência, respeitando a hierarquia de pastas descrita acima. O interessante é que o projeto criado pelo maven já é reconhecido pelo Netbeans e pelo Eclipse, por isso, não é necessário criar um novo projeto com fontes existentes basta abri-los normalmente.

Se você não encontrou um archetype que sirva às suas necessidades, baixe-o de outro repositório, basta descobrir sua url e informá-la para o archetypeCatalog. Ex: Para baixar um archetype JSF/JSP de outro repositório, digite na linha de comando:

mvn archetype:generate -DarchetypeCatalog=http://myfaces.apache.org

Onde -D é o atributo que define o novo valor para a variável archetypeCatalog. Este comando altera o catálogo do maven apenas neste momento, após sua execução ele retornará ao repositório default.
Bem pessoal, esta é minha primeira matéria sobre Java aqui no portal. Espero ter ajudado aqueles que ainda não utilizam sistemas de gerenciamento e automação de projetos.


Por: Fabrício S Costa
Informações Técnicas e Revisão: Fernando Souza

sábado

Como pegar as últimas publicações do Spip e WordPress e integrar com o java

Os códigos php de exemplo desta página estão com um espaço dentro das tags por questões técnicas de postagem do blogger

A poucos dias meu amigo Pedro Jannotti e eu estávamos montando o site de um cliente e precisávamos integrar um módulo java com um wordpress. O site foi todo desenvolvido em wicket por um outro amigo, Alex Egídio e o cliente tinha a necessidade de publicar eventos e cursos periodicamente e queria que as últimas publicações fossem mencionadas na página inicial do wicket. Para gerenciar as publicações tinhamos 2 alternativas, Spip ou Wordpress, mas devido a riqueza de complementos e a uma interface mais amigável, uma vez que o cliente é que iria criar e modificar as publicações, optamos pelo wordpress . Acontece que o wordpress é gerenciado pelo apache e o wicket pelo tomcat. Para resolver o problema tomamos a seguinte decisão:

Criamos um arquivo php que busca os dados do wordpress e monta uma estrutura simples com o título e o corpo das 5 últimas postagens. Este arquivo foi criado dentro da pasta /var/www/ultimas-publicacoes/ultimas-postagens-wp.php no ubuntu ou diretorio-do-apache\htdocs\ultimas-publicacoes\ultimas-postagens-wp.php no windows.

No bowser ficou assim: http:\\localhost\ultimas-publicacoes\ultimas-postagens-wp.php. Segue o conteúdo deste arquivo:

< ?php

define(’BD_USER’, ‘usuario-do-mysql’);
define(’BD_PASS’, ’senha-do-mysql’);
define(’BD_NAME’, ‘bd-do-wordpress’);

mysql_connect(’localhost’, BD_USER, BD_PASS);
mysql_select_db(BD_NAME);

$rs = mysql_query(”select post_title, post_content, guid
from wp_posts
where post_status = ‘publish’
order by post_date desc
limit 0,5″);

echo “< div>”;

while ($row = mysql_fetch_array($rs)) {

echo “ < a href=\”".$row["guid"].”\” target=\”_blank\”>
< font color=\”#000099\”>”.$row["post_title"].”
< /font>

< font color=\”#000000\”>”.substr($row["post_content"], 0, 100).”…
< /font>
< /a>< br />< br />”;
}

echo “< /div>”;

?>

A chamada ao arquivo dentro do wicket ficou assim:

< iframe src=“http:\\localhost\ultimas-postagens.php” frameborder=“no” height=“280px” width=“520″>
< /iframe>

Como curiosidade, montamos o mesmo esquema para o Spip, ficou assim:

criamos o arquivo php em /var/www/ultimas-publicacoes/ultimas-postagens-spip.php ou diretorio-do-apache\htdocs\ultimas-publicacoes\ultimas-postagens-spip.php. E no bowser ficou assim: http:\\localhost\ultimas-postagens-spip.php ou http:\\localhost\ultimas-publicacoes\ultimas-postagens-spip.php. Segue o conteúdo deste arquivo:

< ?php

define(’BD_USER’, ‘usuario-do-mysql’);
define(’BD_PASS’, ’senha-do-mysql’);
define(’BD_NAME’, ‘bd-do-wordpress’);

$rs = mysql_query(”SELECT id_article, titre, texte
FROM spip_articles
WHERE statut = ‘publie’
ORDER BY date_modif
LIMIT 0 , 5“);

echo “< div>”;

while ($row = mysql_fetch_array($rs)) {

echo “ < a href=\”".$row["guid"].”\” target=\”_blank\”>
< font color=\”#000099\”>”.$row["post_title"].”
< /font>

< font color=\”#000000\”>”.substr($row["post_content"], 0, 100).”…
< /font>
< /a>< br />< br />”;
}

echo “< /div>”;

?>

A chamada ao arquivo dentro do wicket permaneceu a mesma:

< iframe src=“http:\\localhost\ultimas-postagens.php” frameborder=“no” height=“280px” width=“520″>
< /iframe>

Assim resolvemos de forma simples o problema.

Opensource

O termo código aberto, ou open source em inglês, foi criado pela OSI (Open Source Initiative) e se refere ao mesmo software também chamado de software livre (fonte: wikipedia).

É cada vez mais comum encontrar grupos que defendam a bandeira do software livre. Hoje, a internet permite intercâmbio entre equipes de várias partes do globo em projetos compartilhados. Os desenvolvedores conseguem centralizar na web tanto código fonte quanto a documentação dos projetos. Iniciativas como o Google Code são louváveis, uma vez que fornecem toda a infra-estrutura necessária para gerar as interações.

Eu participo de 2 projetos opensource, um com meus irmãos e um grupo de amigos e outro no Centro de Ensino Superior de Juiz de Fora onde curso Bacharelado em Sistemas de Informação. São projetos simples e com objetivos bem definidos. O primeiro trata-se de um fórum utilizando jsf, jstl, facelet, e xhtml onde o principal objetivo é estudar otimização de componentes, templates e a aplicação de temas css em projetos parametrizados. O outro faz parte de uma iniciativa de um grupo de alunos do curso de BSI, conforme comentei, e visa desenvolver o aprendizado de linguagens de programação e técnicas de desenvolvimento de sistemas além do incentivo à projetos opensource aplicados a comunidade em geral. A idéia é desenvolver um webservice onde qualquer aplicação poderá remeter ceps e receber em troca seu endereço relativo.

Como disse, são idéias simples, mas que promovem o aprendizado e a aplicação de técnicas e conceitos em projetos reais.

O objetivo e a ideologia por trás dos projetos são muitas vezes sociais, mas é possível ganhar dinheiro com opensource conforme afirma a matéria de Cezar Taurion da edição 31 da revista Mundo Java, "Tendências em Foco: Ganhando Dinheiro com Open Source". O que se percebe é que as Softwares Houses, ou Fábricas de Softwares, estão começando a investir em aplicações de uso livre visando ganhar dinheiro com suporte. Empresas como a Red Hat, que apresentou um crescimento de 31% no último ano fiscal (2008) (fonte: A rede), ganham dinheiro vendendo e dando suporte a softwares livres.

Projetos que colaboro: