Primeiros passos com Alfresco Maven SDK
Jeff Potts, janeiro de 2014 <= Parte 1- Trabalhamos com seu projeto no IDE
- Entendendo a estrutura do projeto
- Criando um projeto adaptado para acesso Share
- Dependências Gerais do Projeto
- Alvo de GUERRA
- Vamos tentar isto: Criando um projeto Share usando um arquétipo
- Noções básicas sobre a estrutura de diretórios do Share Access
- Lançamento de testes internos no Share
- Gerenciamento de dependências
- Outros tópicos para estudo independente
- Onde encontrar mais informação
Trabalhamos com seu projeto no IDE
Isso não é necessário, mas muitas pessoas preferem trabalhar em um IDE ao configurar o Alfresco. Qualquer IDE fará isso, mas um dos mais populares é o Eclipse, então vamos ver como funciona.Estou usando a versão Kepler do Eclipse Java EE IDE para desenvolvedores web. Ele vem com suporte integrado ao Maven.
Para abrir o projeto criado, faça o seguinte:
- Arquivo, importação, Maven, projetos Maven existentes. Clique em Avançar.
- Especifique o diretório que contém o diretório someco-mvn-tutorial-repo. O Eclipse irá verificar este diretório e mostrar seu projeto na lista de projetos. Certifique-se de que a caixa de seleção ao lado do nome do projeto esteja marcada e clique em Avançar.
- O Eclipse mostrará as configurações do painel de plug-ins do Maven. Você pode ignorá-lo com segurança agora. Clique em Concluir.
No painel Marcadores você pode ver uma lista de problemas do Maven dizendo: "Execução do plug-in não coberta pela configuração do ciclo de vida".
Maven tem problemas com plug-ins (versão definida).
Para corrigir:
- Clique com o botão direito no erro e selecione "Correção rápida".
- Selecionando "Marcar permanentemente a versão do conjunto de metas em pom.xml como ignorada na compilação do Eclipse". Preparar.
- Selecione o local onde seu POM está localizado (o meu é com.someco: someco-mvn-tutorial-repo: 1.0-SNAPSHOT) e clique em OK.
- Clique com o botão direito no projeto e selecione Maven, Atualizar Projeto.
- Certifique-se de que o projeto esteja selecionado e clique em OK.
Entendendo a estrutura do projeto
A estrutura de diretórios do seu projeto é um pouco mais agradável de explorar no seu IDE. Vamos ver o que temos aqui.- pom.xml Na raiz do projeto você vê pom.xml. Ele conta ao Maven tudo o que ele precisa saber sobre o seu projeto. Você se lembra de algumas configurações que esqueceu ao criar um projeto a partir de um template? Você pode fazer alterações nas configurações aqui. Por exemplo, a versão 1.1.1 do arquétipo permite trabalhar com o Alfresco Community Edition versão 4.2.e. Se você quiser trabalhar com uma versão diferente - basta alterar algumas propriedades e dizer ao Maven para atualizá-las e ele cuidará do resto.
- src/main/java É aqui que você deve criar seus próprios pacotes para organizar seu código Java. Coisas como classes executoras de ações personalizadas, comportamentos personalizados e controladores Java para scripts da web estão aqui. Se você não sabe o que é tudo isso, não se preocupe, há tutoriais disponíveis aqui . Esses arquivos serão eventualmente colocados em um JAR. Quando o AMP for instalado no Alfresco WAR, o JAR estará dentro de WEB-INF/lib .
- src/test Tudo dentro de src/test está relacionado à execução do teste. Os próprios testes de unidade estão localizados em src/test/java . Quaisquer recursos necessários para essas classes estarão em src/test/resources. Dentro de src/test/properties/local você verá um arquivo alfresco-global.properties . Se você já conhece alguma coisa sobre o Alfresco, sabe que ele é usado para configurar o servidor Alfresco. Neste caso, é utilizado apenas para executar o servidor embarcado, para fins de teste.
- src/main/amp Todo o resto está em algum lugar nesta parte do projeto. A estrutura do AMP está tão bem documentada que não quero duplicá-la aqui. Vou apenas apontar os pontos principais:
- O arquivo module.properties informa ao Alfresco o que ele precisa saber sobre o AMP, como ID, versão, versão mínima e máxima do Alfresco necessária para executar o AMP e quaisquer outros AMPs com as mesmas dependências.
- O diretório config/alfresco/module/someco-mvn-tutorial-repo é o coração do AMP. O local onde você colocará as configurações do arquivo XML do Spring, o modelo de conteúdo dos arquivos XML e a configuração da interface do usuário. Como você verá mais tarde, prefiro separar subdiretórios para cada uma dessas coisas.
- Se o seu módulo incluir scripts da web ou fluxos de trabalho, eles não estarão contidos no diretório de módulos. Em vez disso, eles estão localizados em config/alfresco/extension/templates/webscripts e config/alfresco/extension/workflows .
- Seu módulo pode incluir recursos de cliente que devem ser implantados na raiz do aplicativo Web. Eles estão localizados em src/main/amp/web nos diretórios css, jsp, scripts e images.
Agora você entende como criar um projeto para configurações em nível de repositório. Vamos dar uma olhada no nível de compartilhamento. Como parte disso, mostrarei outra opção para criar um projeto sem sair do Eclipse.
Criando um projeto adaptado para acesso Share
Primeiramente, você deve entender que a estrutura de um projeto criado no nível do repositório é exatamente a mesma de um projeto para uma camada de acesso de compartilhamento adaptada. No futuro do Alfresco Maven SDK, há duas coisas que distinguem o projeto Share: as dependências do projeto e o AMP WAR serão integrados.Dependências Gerais do Projeto
Vamos parar por um momento e falar sobre gerenciamento de dependências. No momento, a implementação é tal que por padrão o arquétipo configurado no projeto pom.xml utiliza as dependências do artefato alfresco-repository. Projetos compartilhados não possuem essa dependência. O fato é que muitos projetos compartilhados nem usam Java. Agora vamos editar pom.xml e remover as dependências do repositório ao ar livre. Isso fará com que os componentes de demonstração e as classes de teste associadas gerem um erro quando compilados. Eles podem ser removidos.Alvo de GUERRA
Outra coisa que diferencia o projeto Share é o WAR em que o AMP é implantado. Em vez de WAR ao ar livre, aqui você precisa implantar no Share WAR. Isso é configurado na propriedade alfresco.client.war em seu pom.xml. Por padrão, isso é definido como "ao ar livre". Para um projeto Share, você precisa substituí-lo por “share”.Vamos tentar isto: Criando um projeto Share usando um arquétipo
Vamos criar um novo projeto com Configurações Gerais. Você pode ir para a linha de comando e executar o mesmo comando archetype executado antes, menos o novo artefatoId, e então alterar a propriedade alfresco.client.war para "share". Se você não estiver usando o Eclipse, faça isso agora e pule a próxima seção.Outra opção é configurar o Eclipse para que você possa criar um novo projeto Alfresco usando o Alfresco Maven SDK sem sair do IDE. Vamos fazer isso.
- Arquivo, Novo Projeto Maven.
- Selecione o diretório que contém o diretório do projeto "repo" e clique em Avançar.
- Clique em Configurar e podemos adicionar o diretório Alfresco à lista.
- Clique em Adicionar catálogo remoto
- Selecione "https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml" como arquivo de catálogo. Selecione a descrição "Arquétipos ao ar livre". Depois, clique em OK e OK novamente próximo ao painel Preferências.
- Agora selecione "Alfresco Archetypes" no diretório e você verá vários arquétipos na lista.
- Selecione "org.alfresco.maven.archetype" e os mesmos dois arquétipos aparecerão no filtro como no início do tutorial.
- Selecione alfresco-amp-archétype e clique em Avançar.
- Selecione "com.someco" para groupId, "someco-mvn-tutorial-share" como artefatoId e altere alfresco_target_amp_client_war para "share". Clique em Concluir.
Noções básicas sobre a estrutura de diretórios do Share Access
Como mencionei anteriormente, a estrutura deste projeto é exatamente a mesma do nosso projeto repo. A única diferença é que no projeto repo coisas como scripts web estão localizados dentro de src/main/amp/config/alfresco/extension/templates/webscripts. No projeto Geral eles estarão em src/main/amp/config/alfresco /web-extension/site-webscripts.Lançamento de testes internos no Share
Freqüentemente, você trabalhará nos dois níveis de configuração ao mesmo tempo. Seu nível Geral precisa de um repositório para mensagens. Uma maneira de fazer isso é dizer ao Maven para iniciar seu projeto de repositório usando:cd someco-mvn-tutorial-repo teste de integração mvn -Pamp-to-warE então execute seu projeto Share usando:
cd someco-mvn-tutorial-share teste de integração mvn -Pamp-to-war -Dmaven.tomcat.port=8081Assim que ambos os servidores estiverem ativos, você pode abrir http://localhost:8081/share e fazer login para testar seu módulo.
Gerenciamento de dependências
O legal do Apache Maven é que ele gerencia as dependências do seu projeto para você. Tudo o que você precisa fazer é contar ao Maven sobre eles configurando seu pom.xml. Por padrão, o Alfresco Maven SDK cria duas dependências para o seu projeto: alfresco-repository e junit.Como escrevi anteriormente, o projeto Alfresco Share não depende do repositório Alfresco, portanto, para o projeto someco-mvn-tutorial-share, essas dependências podem ser removidas. Mas e se eu quiser colocar algumas coisas Java em meu projeto Share, como scripts da web baseados em Java? Neste caso, precisamos adicionar dependências.
Os scripts da Web podem ser executados em qualquer nível. Se você escrever scripts da web baseados em Java em seu projeto de repositório, a classe será construída porque as dependências do artefato alfresco-repository, por sua vez, dependem do artefato spring-webscripts. Você pode ver isso se abrir a Hierarquia de Dependências no Eclipse em seu arquivo pom.xml:
Hierarquia de dependência no Eclipse Outra opção. Você pode ver a hierarquia de dependências executando:
dependência mvn: listaPortanto, para adicionar scripts da web baseados em Java ao seu projeto Share, precisamos adicionar spring-webscripts como uma dependência. Você pode fazer isso editando pom.xml assim:
<dependência> <groupId>org.springframework.extensions.surf</groupId> <artifactId>spring-webscripts</artifactId> <versão>1.2.0-M14</versão> <scope>fornecido</scope> </dependency>Agora, os scripts da web baseados em Java serão capazes de encontrar sua classe pai - DeclarativeWebScript.
Você pode estar se perguntando como saber que a classe DeclarativeWebScript foi incluída no artefato spring-webscripts. Bem, por exemplo, tendo encontrado acessando http://artifacts.alfresco.com . Você pode pesquisar por classe e serão mostrados todos os artefatos que a contêm.
Outros tópicos para estudo independente
Agora você sabe como usar o Alfresco Maven SDK para criar projetos e como seu repositório Alfresco e configurar o Alfresco Share. Se você é novo no desenvolvimento do Alfresco, espero que concorde que é muito fácil montar um projeto para começar. Se você já começou a usar o Alfresco, mas ainda usa os SDKs antigos, espero que isso o motive a mudar para o novo SDK para criar seus AMPs.Existem muitos tópicos que não foram abordados neste tutorial. Vou deixá-los para você explorar a seu próprio critério. Aqui estão alguns deles:
- O Alfresco Maven SDK oferece suporte ao recarregamento dinâmico de classes quando usado em conjunto com uma ferramenta chamada JRebel .
- Este tutorial cobre o arquétipo AMP. Mas o Alfresco Maven SDK inclui outro arquétipo chamado All-in-One. Este exemplo oferece uma instalação Alfresco completa, incluindo SOLR.
- Alfresco Maven SDK é compatível com Community Edition e Enterprise Edition. Se precisar de ajuda para acessar artefatos na Enterprise Edition, entre em contato com o Suporte Alfresco.
Onde encontrar mais informação
- A documentação oficial do Alfresco Maven SDK está localizada em http://docs.alfresco.com .
- Documentação mais detalhada sobre o Alfresco Maven SDK pode ser encontrada em artefatos.alfresco.com .
- Apresentação Gab no Alfresco Summit orientada a testes, desenvolvimento rápido e entrega contínua de soluções Alfresco
- Instant Apache Maven Starter O livro de Maurizio Turatti e Maurizio Pillitu pode ser um ótimo recurso se você estiver interessado em aprender mais sobre o Apache Maven.
- Apresentação de introdução ao desenvolvimento ao ar livre por Gethin James do Alfresco Summit
- Alfresco Developer Series no ECM Architect contém tutoriais gratuitos sobre modelos de conteúdo personalizados, ações, comportamentos, fluxos de trabalho e scripts da web.
GO TO FULL VERSION