JavaRush /Blogue Java /Random-PT /Primeiros passos com Maven Alfresco SDK parte 2
CynepHy6
Nível 34
Великий Новгород

Primeiros passos com Maven Alfresco SDK parte 2

Publicado no grupo Random-PT

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.
    Introdução ao Maven Alfresco SDK parte 2 - 1
  • 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.
    Introdução ao Maven Alfresco SDK parte 2 - 2
  • O Eclipse mostrará as configurações do painel de plug-ins do Maven. Você pode ignorá-lo com segurança agora. Clique em Concluir.
    Introdução ao Maven Alfresco SDK parte 2 - 3
O projeto agora é importado para sua área de trabalho Eclipse.
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 Maven tem problemas com plug-ins (versão definida).
Para corrigir:
  1. Clique com o botão direito no erro e selecione "Correção rápida".
  2. Selecionando "Marcar permanentemente a versão do conjunto de metas em pom.xml como ignorada na compilação do Eclipse". Preparar.
  3. Selecione o local onde seu POM está localizado (o meu é com.someco: someco-mvn-tutorial-repo: 1.0-SNAPSHOT) e clique em OK.
Após reconstruir o projeto, você poderá ver um dos problemas mais recentes "A configuração do projeto não está atualizada com pom.xml". Para correção:
  1. Clique com o botão direito no projeto e selecione Maven, Atualizar Projeto.
  2. Certifique-se de que o projeto esteja selecionado e clique em OK.
Agora o Eclipse provavelmente está satisfeito e os únicos erros devem ser devidos a avisos sobre algumas importações Java não utilizadas.

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.
Você deve verificar todo este projeto no controle de origem. Você pode querer configurar seu cliente de controle de versão para ignorar o diretório de destino e o diretório alf_data_dev.
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.
  1. Arquivo, Novo Projeto Maven.
  2. Selecione o diretório que contém o diretório do projeto "repo" e clique em Avançar.
    Introdução ao Maven Alfresco SDK parte 2 - 4
  3. Clique em Configurar e podemos adicionar o diretório Alfresco à lista.
    Introdução ao SDK do Maven Alfresco, parte 2 a 5
  4. Clique em Adicionar catálogo remoto
  5. 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.
    Introdução ao SDK do Maven Alfresco, parte 2 a 6
  6. Agora selecione "Alfresco Archetypes" no diretório e você verá vários arquétipos na lista.
  7. Selecione "org.alfresco.maven.archetype" e os mesmos dois arquétipos aparecerão no filtro como no início do tutorial.
  8. Selecione alfresco-amp-archétype e clique em Avançar.
    Introdução ao SDK do Maven Alfresco, parte 2 a 7
  9. Selecione "com.someco" para groupId, "someco-mvn-tutorial-share" como artefatoId e altere alfresco_target_amp_client_war para "share". Clique em Concluir.
    Introdução ao SDK do Maven Alfresco, parte 2 a 8
Seu projeto Compartilhar está agora no espaço de trabalho. Na próxima vez que você criar um novo projeto usando o arquétipo, serão necessárias menos etapas porque você não precisará adicionar um diretório.

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-war
E então execute seu projeto Share usando:
cd someco-mvn-tutorial-share
teste de integração mvn -Pamp-to-war -Dmaven.tomcat.port=8081
Assim 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
Hierarquia de dependência no Eclipse Outra opção. Você pode ver a hierarquia de dependências executando:
dependência mvn: lista
Portanto, 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

<= Parte 1
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION