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

Primeiros passos com Maven Alfresco SDK parte 1

Publicado no grupo Random-PT

Primeiros passos com Alfresco Maven SDK

Jeff Potts, janeiro de 2014, parte 2 =>
  • Introdução
  • Conceitos Básicos
  • Apache Maven
  • Pacotes modulares ao ar livre (AMP)
  • SDK Maven ao ar livre
  • O que você pode dizer sobre o antigo SDK baseado em Ant?
  • Seu primeiro projeto
  • Vamos lançá-lo
  • O que foi isso?
  • Outros comandos de construção
  • Exploração madeireira

Introdução

Este tutorial foi criado para aquelas pessoas que precisam, de alguma forma, configurar o Alfresco em um projeto. E então a princípio você pensa: “O que é isso?!” Mas no final você aprenderá:

  • Como criar um projeto Alfresco do zero usando Alfresco Maven SDK
  • O que deve acontecer dependendo de suas configurações
  • Como criar e executar um teste
  • Como criar um artefato adequado para incorporação ou compartilhamento com a comunidade

Este tutorial deve ser considerado um ponto de partida antes de você prosseguir para um aprendizado mais detalhado sobre coisas como modelagem de conteúdo, personalização de ações e comportamento, fluxos de trabalho adicionais ou scripts da web.

Antes de começarmos, uma breve digressão: Quase sempre existem muitos caminhos alternativos para uma solução. Neste tutorial vou te levar da forma mais simples e direta, um caminho seguro que vai te ajudar a descobrir mais rápido. Mais tarde você pode mudar algumas coisas ou explorar outras rotas, se quiser.

Conceitos Básicos.

Você não precisa saber muito sobre Maven, Alfresco ou por que esse SDK é necessário antes de começar a usá-lo, mas algum conhecimento pode ajudar de algumas maneiras, então deixe-me explicar rapidamente os conceitos básicos.

Apache Maven

Apache Maven é uma ferramenta de gerenciamento de compilação. Ele tem muitos recursos, mas o principal é que economiza tempo para descobrir de quais dependências (e dependências de dependências) seu projeto depende. O Maven pode recuperar e armazenar em cache essas dependências para você. Se você já passou algum tempo tentando descobrir qual arquivo JAR vem depois de qual arquivo JAR, então a utilidade dessa ferramenta é óbvia.

Pacotes modulares ao ar livre (AMP)

AMP é um arquivo ZIP com uma estrutura de diretórios que segue certas convenções. Os arquivos AMP são usados ​​para compartilhar e implantar facilmente configurações na plataforma Alfresco. Se o seu projeto precisar criar configurações personalizadas no nível do repositório (aplicativo da web/ao ar livre), você criará um "repositório" de AMP. Se o seu projeto precisar criar configurações no nível de compartilhamento (aplicativo web/compartilhamento), você cria um AMP de "compartilhamento". É bastante típico de um projeto que, quando são necessárias alterações em ambos os níveis, você crie dois AMPs.

SDK Maven ao ar livre

Os programadores de hoje estão acostumados com estruturas poderosas nas quais um diretório vazio fica completamente preenchido com arquivos em um minuto e no momento seguinte seu projeto está pronto para ser lançado. Por que os desenvolvedores do Alfresco deveriam se contentar com menos?

O objetivo do SDK baseado em Maven é criar as condições mais simples possíveis para iniciar o desenvolvimento do Alfresco. O SDK consiste em um modelo de projeto (um "arquétipo" na terminologia do Maven) e alguns recursos integrados que informam ao Maven como criar AMPs e implantá-los no Alfresco.

Se você escrever seu próprio aplicativo separadamente dos WARs Alfresco e Share, não precisará do Alfresco Maven SDK. Mas se você for escrever código que seja executado em qualquer um desses aplicativos da web, o Alfresco Maven SDK é o lugar por onde começar.

E o antigo SDK baseado em Ant?

Alfresco forneceu este SDK para download desde o início. O SDK continha um contêiner ZIP com as dependências necessárias para compilação, código-fonte, documentação e exemplos de projetos Eclipse. Esses exemplos usaram um construtor baseado em Ant.

Não havia nada de errado com essa abordagem, mas as plataformas de desenvolvimento evoluíram e os SDKs do Ant não conseguiram evoluir com elas. Atualmente, partes desses exemplos estão desatualizadas (APIs de serviços Web nativos, por exemplo, ou a interface de usuário do Alfresco Explorer) e não há exemplos suficientes para partes extremamente importantes, como CMIS, scripts Web e fluxos de trabalho avançados usando o Activiti.

Além de seus exemplos desatualizados, o antigo Ant SDK é necessário. Os desenvolvedores estão trabalhando demais. Com o Alfresco Maven SDK, você nem precisa baixar nada - basta criar seu projeto e começar a codificar.

Agora você tem um alto nível de conhecimento sobre Apache Maven, AMP e Alfresco Maven SDK. É hora de ver tudo em ação

Seu primeiro projeto

Deixe-me mostrar como é fácil começar a desenvolver para Alfresco usando o Alfresco Maven SDK. Antes de começarmos, devo lembrá-lo de ter o JDK 1.7 instalado, assim como o Apache Maven 3. Você não precisa baixar mais nada. Seriamente. Até mesmo ao ar livre.

  1. Crie um diretório vazio. Estaremos criando alguns diretórios adicionais nele em breve.
  2. Agora vamos criar um projeto vazio. Digamos que você queira criar algo que será implantado no repositório Alfresco, por exemplo, um modelo de conteúdo customizado, diversas ações de regras customizadas, um novo conjunto de scripts da web ou alguns processos de negócios do Activiti. Realmente não importa. Para criar um novo projeto, execute o comando:
    arquétipo mvn:generate\
    -DarchetypeCatalog=https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml\
    -Dfilter=org.alfresco.maven.archetype:
  3. Maven fará algum trabalho e eventualmente pedirá que você selecione "arquétipo". Sua seleção básica nas bibliotecas de modelos de projeto. Existem dois disponíveis aqui. Um é chamado de "arquétipo de amplificador ao ar livre" e o outro "arquétipo de alfresco-allinone". Nosso objetivo é criar um AMP que possa ser implantado no Alfresco, então o primeiro ponto é o que precisamos. Digite 1 e pressione Enter.
  4. O Maven agora pede uma versão específica do modelo no qual você baseará seu projeto. Atualmente, a versão mais recente é 1.1.1, que é a quinta opção da lista, então pressione 5 e Enter.
  5. Maven pergunta sobre groupId. É semelhante ao "pacote Java". Meus exemplos são sempre baseados no fato de eu trabalhar em uma empresa fictícia chamada SomeCo, então vou inserir “com.someco” aqui. Digite algo que faça sentido para você e pressione Enter.
  6. O próximo é o artefatoId. Pense nisso como o nome do seu projeto. Este também se tornará seu AMP ID, então escolha algo especial. Você também deve adicionar a linha "-repo" ao seu artefatoId porque este módulo será integrado ao repositório. Vou nomear o meu "someco-mvn-tutorial-repo" e pressionar Enter.

  7. Neste ponto, o Maven mostrará os valores inseridos, adicionará alguns outros padrões e solicitará que você confirme sua seleção. Se quiser alterar alguma coisa, você pode selecionar “N” e depois fazer alterações ou “Y” para continuar. Você sempre pode alterar esses valores posteriormente, se necessário. Pressione "Y" e depois Enter.

Maven agora fará algum trabalho. Quando terminar você obterá o seguinte:

  • Um projeto estruturado para apoiar o seu desenvolvimento Alfresco
  • Arquivos de configuração padrão
  • Código Java mínimo para testes de unidade adicionais para verificar se tudo funciona
  • Configuração necessária para executar a instância local do Alfresco necessária para teste
  • Arquivo XML POM (Project Object Model) padrão que informa ao Maven quais dependências seu projeto possui

Vamos executá-lo

Você ainda não carregou nada. Você ainda não editou nada. Tudo o que você fez foi dizer ao Maven para criar um projeto baseado no modelo, mas tenho uma ótima notícia: seu projeto está pronto para ser executado agora mesmo.

Experimente isto:

cd someco-mvn-tutorial-repo
teste de integração mvn -Pamp-to-war

Se você observar a saída, verá que o Maven baixa tudo o que é necessário para compilar o projeto, criar o AMP, implantar o AMP no Alfresco WAR, implantar o Alfresco WAR no servidor Tomcat incorporado e executá-lo. Eventualmente você verá algo semelhante a:

15/01/2014 18:01:19.339 INFO [repo.module.ModuleServiceImpl] [localhost-startStop-1] Encontrado 1 módulo(s).
15/01/2014 18:01:19.480 INFO [repo.module.ModuleServiceImpl] [localhost-startStop-1] Instalando o módulo 'someco-mvn-tutorial-repo' versão 1.0.1401151758.

O que significa que os módulos do seu projeto foram gerados e reconhecidos pelo servidor Alfresco.

Depois de ver:

16 de janeiro de 2014 8h38min20s org.apache.coyote.AbstractProtocol start INFO: Iniciando ProtocolHandler ["http-bio-8080"]

Você deve ser capaz de abrir:

http://localhost:8080/alfresco

E faça login usando "admin" e "admin".

Quando terminar de admirá-lo, volte para a janela onde executou o comando Maven e pressione ctrl-c para desligar o servidor.

Se você receber um erro de falta de memória ao executar um teste de integração, talvez seja necessário inserir alguns parâmetros JVM para opções de memória no Maven. Uma solução possível é definir a variável de ambiente MAVEN_OPTS. Por exemplo, defino meus valores para:

-Xmx1024M -XX:MaxPermTamanho=512m

Use MAVEN_OPTS para configurá-lo o suficiente para que você não veja erros de estouro de memória.

O que foi isso?

Você pediu ao Maven para executar o "teste de integração" para usar o perfil "amp-to-war". Isso levou à construção do projeto, à implantação dele como AMP em um novo Alfresco WAR e à execução do servidor Tomcat incorporado. Depois disso, você conseguiu fazer login no antigo cliente Alfresco Explorer e trabalhar com o repositório, testando seu módulo.

Se você olhar no diretório de destino, verá o AMP que foi criado e posteriormente implantado no Alfresco WAR. No meu caso é chamado de "someco-mvn-tutorial-repo.amp". Este arquivo é o que você deve fornecer à sua equipe de TI se estiver pronto para aplicar as alterações no nível do repositório ao servidor Alfresco ativo.

Outros comandos de construção

Nem sempre você precisa iniciar o servidor Alfresco e deixá-lo em execução. Se você deseja apenas construir o projeto, executar um teste de unidade e empacotar o AMP, você pode fazer:

pacote mvn

Se você deseja instalar o AMP dentro do seu repositório Maven local, execute:

instalação mvn

Você deve ter notado que o projeto inclui um teste de unidade simples por padrão. Por padrão, o Maven executará automaticamente testes de unidade em seu projeto. Você pode ver isso na saída do console:

-------------------------------------------------- -----
 TESTES
-------------------------------------------------- -----
Executando org.alfresco.demoamp.test.DemoComponentTest

É uma boa prática garantir que seu projeto sempre inclua testes de unidade e os execute sempre que você compilar. Muitas organizações utilizam ferramentas de CI (Integração Contínua) que dependem desses testes. Se por algum motivo você não quiser executar o teste, você pode ignorá-lo, algo assim:

mvn instalar -DskipTests=true

Se quiser remover todo o material compilado que o Maven cria e começar de novo, você pode executar:

mvn limpo

Se você também deseja excluir o banco de dados integrado, o conteúdo salvo do Alfresco, os índices e os logs que são sempre criados ao executar o teste do servidor, você pode executar:

mvn clean -Purge

Agora você já sabe como criar um novo projeto Alfresco usando um template e tem o básico de construção com ou sem testes. A próxima etapa é aprender como trabalhar com seu projeto no IDE.

Exploração madeireira

O arquivo log4j.properties está localizado no diretório de módulos, o arquivo log4j.properties inclui

log4j.logger.org.alfresco.demoamp.DemoComponent=${module.log.level}

Você provavelmente desejará substituir isso por suas próprias configurações que se adequem à estrutura do seu pacote.

Para configurar module.log.level você pode fazer isso ao iniciar o Maven, assim:

mvn instalar -Dmodule.log.level=DEBUG

Ou você pode editar pom.xml e adicionar isto às propriedades, algo assim:

<module.log.level>DEBUG</module.log.level>

Se você alterar o pom.xml, o AMP receberá essas configurações quando for criado e, posteriormente, o WAR no qual o AMP está implantado gravará logs. Isso pode (ou não) ser o que você deseja. Se você não tiver certeza, talvez seja melhor definir os valores usando a linha de comando, pois isso evitará que você bagunce acidentalmente os valores do seu AMP.

Arquiteto ECM


Esta obra está licenciada sob uma Licença Creative Commons Attribution-ShareAlike 3.0 Unported . Parte 2 =>
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION