Raible's Wiki

Raible Designs
Wiki Home
News
Recent Changes

AppFuse

Homepage
  - Korean
  - Chinese
  - Italian
  - Japanese

QuickStart Guide
  - Chinese
  - French
  - German
  - Italian
  - Korean
  - Portuguese
  - Spanish
  - Japanese

User Guide
  - Korean
  - Chinese

Tutorials
  - Chinese
  - German
  - Italian
  - Korean
  - Portuguese
  - Spanish

FAQ
  - Korean

Latest Downloads

Other Applications

Struts Resume
Security Example
Struts Menu

Set your name in
UserPreferences

Edit this page


Referenced by
Articles
Articles_de
Articles_pt
DevelopmentEnvironme...




JSPWiki v2.2.33

[RSS]


Hide Menu

AppFuseEclipse_pt


AppFuse, por padrão, é configurado para ser um projeto Eclipse. Quando você roda ant new para criar um novo projeto, você receberá os arquivos .project e .classpath para iniciar seu projeto. Entretanto, você terá que fazer algumas modificações fáceis de configuração no Eclipse (particularmente para rodar o Ant). Este tutorial mostra como instalar o Eclipse para desenvolver seu projeto com o AppFuse.

Em geral, eu não uso o Eclipse para mais que um editor de texto. Eu faço a maioria de minha compilação, teste e publicação da linha de comando. Este tutorial vai demonstrar como facilitar a utilização do Eclipse para construção e testes, mas se isto não funcionar para você - a melhor opção é utilizar a linha de comando para rodar tasks Ant. É claro, se você souber de uma maneira melhor de integrar o Eclipse - por favor, nos deixe saber.

Este tutorial é baseado no Windows XP e Eclipse 3.0.1 e deve funcionar em qualquer plataforma. Você pode baixar o Eclipse 3.0.1 se você ainda não o tem instalado. Eu ainda recomendo você baixar meus plugins Eclipse ou comprar MyEclipse. Um sonho meu é poder criar um projeto MyEclipse/AppFuse - mas isto necessitaria de uma completa reconstrução da estrutura de diretórios do AppFuse e do arquivo de construção e eu simplesmente não tenho o tempo o energia para fazê-lo. Além do mais, o sistema atual funciona bem se você não se importa em utilizar o Ant.

Tabela de Conteúdo

  • [1] Crie um Novo Projeto Java no Eclipse
  • [2] Configure o Ant no Eclipse
  • [3] Adicione o arquivo build.xml para o Ant View
  • [4] Rode o Ant
  • [5] Rode os testes JUnit no Eclipse
  • [6] Dicas para Depuração e edição de Interface ao Usuário (UI)

Crie um Novo Projeto Java no Eclipse [#1]

Abra o Eclipse (pode ser tanto com uma área de trabalho existente ou com uma nova) e vá para File → New → Project. Então selecione "Java Project" e aperte o botão Next. No campo Project Name, entre com o nome do seu projeto (i.e. appfuse) e o diretório que seu projeto reside (i.e. c:\Source\appfuse) na caixa abaixo. Se aparecer um aviso para mudar para a perspectiva Java (Java Perspective), escolha Yes.

Se você tentar construir o projeto neste ponto, aparecerão muitos erros. A maioria deles involve o fato de que a classe UserForm não pode ser encontrada. Isto é porque todos os ActionForms no AppFuse (se você está utilizando a versão Struts) são gerados do POJOs com XDoclet.

Todas as task XDoclet são configuradas no arquivo Ant build.xml então a coisa mais fácil a fazer é rodar "ant gen-forms" para gerar os ActionForms. Se você tiver o Ant 1.6.2+ instalado, você pode fazer isto da linha de comando. O próximo passo mostra como você configura o Eclipse para rodar seu AppFuse build.xml.

DICA: Aqui tem uma maneira de esconder os JARs que se vêem no Package Explorer do Eclipse.

Configure o Ant no Eclipse [#2]

A maneira mais fácil de configurar o Eclipse para o Appfuse é instalar o Ant no seu disco rígido (i.e. c:\Tools\apache-ant-1.6.2) e apontar o ANT_HOME do Eclipse para este directory. Para fazer isto, vá para Window → Preferences → Ant → Runtime. Então clique no botão "Ant Home" e selecione a pasta de instalação no seu disco rígido.

Se você preferir utilizar o Ant que já vem com o Eclipse, você deve adicionar o junit.jar para o seu classpath. Para fazer isto, vá em Window → Preferences → Ant → Runtime. Então clique no botão "Add JARs" e selecione o junit.jar do appfuse/lib/junit3.8.1/lib/junit.jar. Clique em OK até você voltar para a visão do workbench.

Depois, adicione o catalina-ant.jar (em $CATALINA_HOME/server/lib) para o classpath ant. Então na tab property, adicione o arquivo tomcatTasks.properties (em lib/ant-contrib) como um arquivo de propriedades global.

Abaixo está o screenshot de como o Ant Runtime classpath deve estar após as modificações acima:

ant-runtime.png

Adicione o arquivo build.xml para o Ant View [#3]

Agora precisamos adicionar o arquivo build.xml para o Ant View do Eclipse. Para fazê-lo, devemos acessar Window → Show View → Ant. Então devemos clicar no primeiro ícone desta visão (screenshot abaixo) para adicionar o arquivo build do AppFuse.

ant-view.png

Rode o Ant [#4]

Após adicionar o build.xml, você deve ser capaz de expandir ele na Ant View e executar qualquer um de seus alvos (targets). Eu geralmente faço "test-all" para verificar todos os testes passando em meu projeto inicial. Para uma lista de alvos que utilizo regularmente, veja AppFuse Ant Targets.

Agora se você rodar o alvo "compile", atualizar o projeto (clique com o botão direito em project → Refresh) e não aparecerá nenhum erro no pane "Problems". Você poderá agora compilar e criar classes como normalmente faria. Algumas vezes quando meus imports não são resolvidos corretamente pelo Eclipse, rodo Project → Clean no Eclipse.

NOTA: Se você está utilizando a versão interna do Ant, você pode receber uma mensagem de erro como a abaixo:
BUILD FAILED: C:\source\appfuse\build.xml:802: The following error occurred while executing this line:
C:\source\appfuse\build.xml:780: The following error occurred while executing this line:
java.lang.NoClassDefFoundError: org/apache/xml/serialize/OutputFormat

Isto é porque existem tasks Ant que necessitam que o Xerces esteja no classpath do Ant [reference]. Adicionei xercesImpl.jar e xml-apis.jar (de minha instalação própria de Ant) para o classpath do Ant do Eclipse para resolver este problema.

Neste ponto, você terá algo similar ao screenshot abaixo.

ant-targets.png

Rode os testes JUnit no Eclipse [#5]

Tmabém é possível você rodar os testes JUnit no Eclipse. Mas antes de rodá-los, você deve rodar o alvo "war". Após o alvo ser completado, atualize seu projeto.

Após você fazê-lo com sucesso, abra o teste que deseja rodar no Eclipse (i.e. UserDaoTest) e vá para Run → Debug As → JUnit Test. Note que você deve rodar o alvo "db-load" antes de rodar cada teste. Eu ainda tenho o seguinte método na classe Base*TestCase para cada camada, mas isto causa um carregamento da base de dados pelo DBUnit antes de cada teste na classe de Teste. Removendo isto reduz o tempo de execução da task "test-all" em mais de 30 segundos.


    protected void setUp() throws Exception {
        DataSource ds = (DataSourcectx.getBean("dataSource");
        IDatabaseConnection conn = new DatabaseConnection(ds.getConnection());
        IDataSet dataSet = 
            new XmlDataSet(new FileInputStream("metadata/sql/sample-data.xml"));
        // limpa a tabela e insere apenas os dados de amostra
        DatabaseOperation.CLEAN_INSERT.execute(conn, dataSet);
        conn.close();
    }

Se as instruções acima não funcionaram para rodar os testes JUnit no Eclipse, sugiro apenas utilizar a linha de comando - i.e. ant test-dao -Dtestcase=UserDAO. Rodar testes da linha de comando sempre funciona. ;-)

Dicas para Depuração e edição de Interface ao Usuário (UI) [#6]

Para depuração, utilizo o Plugin para Tomcat no Eclipse e setar breakpoints. Para fazer os breakpoints funcionarem, será preciso indicar o caminho do código fonte utilizando o menu do Eclipse Window->Preferences, selecione Tomcat, então Source Path.

Para pequenas mudanças, utilizo "ant deploy-web" que demora apenas alguns segundos. Para mudanças verdadeiramente pequenas, algumas vezes é mais fácil editar o arquivo na pasta de aplicações web do Tomcat. Para mudanças maiores de projeto, geralmente eu rodo a aplicação, vejo o código em uma página e salvo ele em uma pasta "sandbox" no mesmo diretório do meu projeto. Então eu faço find/replace e modifico todas as referências "/appfuse/" para "../web/". Isto me permite trocar arquivos CSS e JS e apenas atualizar o arquivo na sandbox.


Attachments:
ant-targets.png Info on ant-targets.png 28653 bytes
ant-runtime.png Info on ant-runtime.png 96096 bytes
ant-view.png Info on ant-view.png 6585 bytes


Go to top   Edit this page   More info...   Attach file...
This page last changed on 06-Nov-2006 13:53:00 MST by RafaelNami.