| Cenário | Você quer desenvolver (trabalhar) no projeto Mammon e não sabe como fazer para obter o código-fonte e fazer evoluções. | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Procedimento | 1 - Instalar o JDK 1.8 64bitsBaixar o website da Oracle, e instalar em uma pasta no seu Sistema Operacional Após isso, configurar a varável de ambiente:
Isso deve ficar assim:
Após isso, adicionar o diretório bin do JDK do Java no seu Path do Sistema Operacional, para que comandos como javac, jps e outros estejam acessíveis. Ou seja, o teste abaixo deve funcionar mostrando a versão do Java e as opções do JPS, por exemplo:
2 -Instale o MavenBaixe e instale o Maven em um diretório local da sua máquina.
Apósi instalado, configure as variáveis de ambiente do seu Maven no Sistema Operacional, como:
Elas devem ficar assim:
Inclua o executável do Maven na linha de comando do Sistema Operacional, colocando pelo menos uma das variáveis acima dentro do path do sistema + o diretório bin, como:
Isso deve ficar assim:
Teste então o Maven, com o comando mvn -version: |
| Repositório | Conteúdo |
|---|---|
| mammon-base | Contém todas configurações para os demais projetos, com controles de qualidade de código e versões de bibliotecas. É usado por herança nos outros projetos (concieto de "POM Parent") para que todos os projetos tenham sempre os mesmos padrões. Alterações nele se propagam automaticamente para todos os outros projetos. Isso pode ser bom, no sentido atualizar a versão de uma biblioteca, como poder "ruim", no sentido de alterar as rergas de tabulação de código-fonte ou Javadoc, o que obrigaria refatoração de todos os projetos derivados. |
| mammon-core | Contém classes, anotações e outros recursos extremamente básicos e comuns para todos os projetos que usam o Mammon como base. Exemplos são a classe Inspector, usada para operações de reflexão e a anotação PublicApi que marca objetos para reuso. |
| mammon-message | Contém todas as funcionalidades para trabalhar com mensagens de validação, avisos e internacionalização no Mammon. Depende do Mammon-Core e é usado pelo Mammon-Business. |
| mammon-business | Contém funcionalidades para presistência e serviços REST, bem como bases para criação de lógica de negócio através de classes de domínio de de serviços. No tocante à persistência, esse pacote oferece transparência em relação à tipo de banco de dados e framework de persistência e, quando não suportado, permite extensões. Persistência atual é baseada no Hibernate e Active Objects, mas outras podem ser implementadas, como No-SQL, por exemplo. No tocante ao REST, possui um serviço 100% funcional para operações CRUD seguindo o conceito de "crie um POJO e terás o CRUD automático via REST". Tal serviço é baseado em uso avançado de reflexão e é direcionado pelos princípios do framework Apache Isis, embora não utilize ele. Quando o serviço REST precisa regras de negócio, elas podem ser implementadas via services customizadas e ainda assim usar as operações CRUD genéricas do REST, que invocam as regras de negócio via modelo de delegação. Ou, se desejado, podem ser criados servicços REST "brutos" ou então estendendo o serviço padrão ou então as classes abstratas. O serviço REST é implementado pelo Jersey. Já oas services, usam o padrão de extensão e adaptação, com classes genéricas. E, as classes de domínio, representam as regras de negócio, encapsulando os objetos POJO do sistema. DTOs são usados quando necessário, e se valem da biblioteca Murdoc para copia de valores automática via anotações. Depende do mammon-core e mammon-message. |
| mammon-atlassian | É a base para os desenvolvimentos de plugins Atlasisan. Contém funcionalidades para plugins JIRA, Confluence e outros. É ainda um projeto em formação e, pode acabar sendo desmembrado (a exemplo do Mammon Core, Business e Message) em projetos separados para representar melhor os tipos de plugin (coisas básicas para qualquer plugin Atlassian; plugins JIRA; plugins Confluence; plugins Bamboo, etc). Esse é o projeto que está mais instável ainda, no sentido de não se saber como/se as coisas estão bem organizadas ainda. Observe que este projeto herda não o mammon-base padrão, mas o módulo atlassian dentro dele. |
A partir daqui, recomenda-se você