Arquivo por categoria Maven Archetype

Criando um novo projeto a partir de um Archetype Maven

Em uma postagem anterior você viu como criar um Archetype Maven a partir de um projeto existente agora chegou o momento de criarmos um projeto novo a partir do nosso archetype. Primeiro você precisa clonar esse projeto no seu computador. Para isso abra o terminal no diretório em que deseja armazenar o código e execute o comando abaixo.

git clone https://github.com/leandrocgsi/erudio-rest-api-archetype.git

Abra a pasta gerada ela deverá se parecer com a imagem abaixo.

OpenFolder

Abra o terminal nessa pasta e execute o seguinte comando.

mvn clean install

Ele deve se parecer com a imagem abaixo

CleanInstall

Agora vá até o diretorio em que deseja criar o seu projeto e execute o seguinte comando (formatado para facilitar a leitura execute tudo na mesma linha).

mvn archetype:generate -DarchetypeGroupId=br.com.semeru
    -DarchetypeArtifactId=jsf-hibernate-spring-security-archetype
    -DarchetypeVersion=0.1.0
    -DgroupId=br.com.your.domain
    -DartifactId=your-project-name
    -Dversion=1.0-SNAPSHOT
    -Dpackage=br.com.your.domain

Onde você deve ajustar os parâmetros DgroupId para seu group ID, DartifactId para o nome do seu projeto, Dversion para o numero de versão desejado, Dpackage para sua base de pacotes.

Ele deve se parecer com a imagem abaixo.

GenerateProject

O Maven irá lhe perguntar se você deseja alterar a versão do seu projeto e a estrutura de pacotes como está destacado na imagem abaixo. Se você não quiser alterar nada apenas digite Enter Enter. Se tudo tiver corrido bem você deverá ver uma imagem similar à que se segue e isso significa que o seu projeto foi criado com sucesso 😉

Building1

Agora só precisamos importar nosso projeto na nossa IDE favorita (STS – Spring Suource Tool Suite, baseada no Eclipse, no meu caso). Acesse o menu File >> Import >> Maven >> Existing Maven Projects >> Next.

Importing1

Como na imagem abaixo digite ou navegue até o diretório onde se encontra o seu código e clique em Browse >> Finish.

Importing2

Agora que tudo está pronto basta codar a nossa aplicação. Caso não saiba como executar o projeto clique aqui e siga o passo a passo.

Tags: , ,

Criando um Archetype Maven a partir de um projeto existente


Maven archetypes são templates de projetos que possibilitam iniciar o desenvolvimento de novos projetos rapidamente baseando se em uma base de arquivos, xml’s e classes já existentes. Um bom exemplo disso são os archetypes da fundação JBoss que possibilitam a criação de uma enorme variedade de arquiteturas para esse ambiente. Você pode por exemplo criar uma aplicação JEE em questão de minutos apenas executando um simples comando. No meu caso eu vou criar um template de uma API RESTful para que eu possa criar novas aplicações com esse comportamento com maior rapidez no futuro. A estrutura do nosso archetype será construido a partir do projeto Erudio API OAUTH2 que é uma aplicação RESTful com Spring Boot.


Existem duas formas de se criar um archetype Maven:


1. Construir o template do zero adicionando os arquivos necessários
2. Executar o Maven archetype plugin em um projeto já existente e configurá-lo. No nosso caso escolheremos a segunda opção.


Primeiro precisamos navegar até o diretório raiz do nosso projeto fonte e executamos o comando abaixo:


mvn archetype:create-from-project


Depois de toda a mágica você deverá ver uma tela de sucesso similar a imagem abaixo com a expressão “BUILD SUCCESS”. Note que a mensagem de sucesso aparece duas vezes, a primeira delas é referente a construção da estrutura do archetype e a segunda se refere a criação do mesmo.


[INFO] Scanning for projects...
Downloading: https://repo.spring.io/plugins-release/org/codehaus/mojo/maven-metadata.xml
Downloading: https://repo.spring.io/plugins-release/org/apache/maven/plugins/maven-metadata.xml
Downloaded: https://repo.spring.io/plugins-release/org/apache/maven/plugins/maven-metadata.xml (18 KB at 5.3 KB/sec)
Downloaded: https://repo.spring.io/plugins-release/org/codehaus/mojo/maven-metadata.xml (27 KB at 7.9 KB/sec)
Downloading: https://repo.spring.io/plugins-release/org/apache/maven/plugins/maven-archetype-plugin/maven-metadata.xml
Downloaded: https://repo.spring.io/plugins-release/org/apache/maven/plugins/maven-archetype-plugin/maven-metadata.xml (784 B at 0.9 KB/sec)
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building erudio-api-oauth2 0.1.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:2.4:create-from-project (default-cli) > generate-sources @ erudio-api-oauth2 >>>
[INFO]
[INFO] --- gmaven-plugin:1.5:generateStubs (default) @ erudio-api-oauth2 ---
[INFO] Generated 13 Java stubs
[INFO]
[INFO] <<< maven-archetype-plugin:2.4:create-from-project (default-cli) < generate-sources @ erudio-api-oauth2 <<<
[INFO]
[INFO] --- maven-archetype-plugin:2.4:create-from-project (default-cli) @ erudio-api-oauth2 ---
[INFO] Setting default groupId: br.com.erudio
[INFO] Setting default artifactId: erudio-api-oauth2
[INFO] Setting default version: 0.1.0
[INFO] Setting default package: br.com.erudio
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building erudio-api-oauth2-archetype 0.1.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.7:resources (default-resources) @ erudio-api-oauth2-archetype ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 116 resources
[INFO]
[INFO] --- maven-resources-plugin:2.7:testResources (default-testResources) @ erudio-api-oauth2-archetype ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 2 resources
[INFO]
[INFO] --- maven-archetype-plugin:2.4:jar (default-jar) @ erudio-api-oauth2-archetype ---
[INFO] Building archetype jar: D:\SandBox\MyCode\erudio-api-oauth2\target\generated-sources\archetype\target\erudio-api-oauth2-archetype-0.1.0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.121 s
[INFO] Finished at: 2016-05-11T13:53:05-03:00
[INFO] Final Memory: 12M/121M
[INFO] ------------------------------------------------------------------------
[INFO] Archetype project created in D:\SandBox\MyCode\erudio-api-oauth2\target\generated-sources\archetype
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 27.668 s
[INFO] Finished at: 2016-05-11T13:53:06-03:00
[INFO] Final Memory: 30M/212M
[INFO] ------------------------------------------------------------------------
$


Acesse o diretório gerado target/generated-sources/archetype e copie o conteudo do pom.xml e da pasta src para um novo diretório caso necessário faça suas alterações.
A estrutura raiz do projeto deve ser similar a imagem abaixo:


Estrutura de Pastas


A pasta target pode ser deletada com o comando mvn clean. O pom.xml do archetype possui apenas o necessário para construir um novo projeto. Uma boa seria alterarmos a versão para 1.0-SNAPSHOT uma vez que ainda não é uma versão final.
Em src/ por sua vez estão os fontes do nosso archetype.
Continuem ligados e em uma próxima postagem explicarei como criar um novo projeto a partir do recém criado archetype.

Tags: , ,