Raible's Wiki
Raible Designs AppFuseHomepage- Korean - Chinese - Italian - Japanese QuickStart Guide User Guide Tutorials Other ApplicationsStruts ResumeSecurity Example Struts Menu
Set your name in
UserPreferences
Referenced by
JSPWiki v2.2.33
Hide Menu |
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.
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
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:
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.
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.
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.
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:
|