Criar archetype Maven 2

Oi pessoal,

Estou começando a utilizar o Maven. Baixei o plugin para o eclipse, criei projetos de teste, tudo ok.
Porém quero criar meu próprio archetype com a minha estrutura de diretórios e copiar alguns arquivos para alguns diretórios na criação do projeto.

Como faço para criar meu próprio archetype?

É extremamente simples, apenas siga os passos indicados no site do maven:

http://maven.apache.org/guides/mini/guide-creating-archetypes.html

Uma outra forma bacana é obter exemplos de archetypes existentes, principalmente em repositórios centrais maven. Por exemplo:

http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/maven/archetypes/

Opa,

Entrei no link indicado e vi uma lista de archetypes de exemplo. Baixei e examinei o arquivo .jar e vi que ele tem uma estrutura padrão.
Então eu tenho que criar um arquivo jar conforme os exemplos? Tem como eu disponibilizar o meu archetype no eclipse para criação de projetos?

Então, a criação do archetype é basicamente uma estrutura inicial empacotada em um jar com um descritor (archetype.xml).

Não sei o quanto complicado é disponibilizar um archetype em uma central, muito provavelmente você precisará de aguma aprovação. Mas você pode instalar um gerênciador de artefatos maven (ex. Artifactory) na sua rede e disponibilizar seus archetypes nele.

Instalei o Artifactory como o colega Pozzo e pelo que entendi ele funciona como um proxy e serve para colocarmos os jar’s das bibliotecas e criarmos um repositório local.
Com relação aos archetypes, não consegui colocar nele.

Vi no link http://books.sonatype.com/maven-book/reference/archetypes.html#d0e24937 uma forma de criar um catálogo local para disponibilizar os meus archetypes. Criei o catálogo, configurei ele no Eclipse, quando vou criar um novo projeto Maven ele mostra os archetypes que estão configurados nesse arauivo, porém ao finalizar o wizard de criação ele dá um erro, como se não encontrou o archetype.

Meu catálogo:

<?xml version="1.0" encoding="UTF-8"?> <archetype-catalog> <archetypes> <archetype> <groupId>org.apache.maven.archetypes</groupId> <artifactId>maven-archetype-webapp</artifactId> <version>1.0</version> <repository>file:///opt/maven_archetype</repository> <description>Web padrão</description> </archetype> </archetypes> </archetype-catalog>

Alguém já criou seus próprios archetypes? Como deve a estrutura do meu repository, tenho que colocar os jar’s, a pasta aberta???

Bom, esta thread eh velhinha, mas está bem posicionada no google então vou dar minha contribuição para quem possa precisar:

Precisei criar um archetype com base para uma determinada arquitetura definida pelo cliente então, depois de dar uma vasculhada na internet consegui da seguinte maneira:

[list]Para facilitar, crie um projeto a partir de um archetype mais basico, escolhi o maven-archetype-webapp:[/list]

[list]Faça as alterações necessárias ao projeto criado, como adicionar dependências no pom.xml[/list]
[list]Altere o groupId, artifactId, version e name do pom.xml[/list]
[list]Depois que o projeto esteja configurado, remova os arquivos não desejados (como arquivos de controle do Eclipse) e execute na pasta do projeto:[/list]

[list]mova a pasta tutorialMaven\target\generated-sources\archetype para uma pasta de trabalho e execute o proximo comando dentro da pasta archetype:[/list]

[list]Este comando irá instalar o archetype criado no seu repositório local, para adiciona-lo no repositorio de sua empresa, use o deploy no lugar de install[/list]
[list]Finalmente, execute o comando abaixo para verificar se o archetype foi instalado em seu repositorio local:[/list]

Fonte: http://blog.inflinx.com/2010/04/16/creating-maven-archetypes-spring-mvc-example/

hover, sua explicação me ajudou a criar o archetype no repositório ‘local’.

Porem temos um archiva que fica em um servidor na rede, tentei substituir o comando deploy pra criar o archetype nele, mas deu erro.

Como posso proceder?

pirado18, conseguiu descobrir?
Estou com a mesma necessidade.

Obrigado.

Acredito que encontrei a solução.

Primeiro adicione o archetype como um artefato normal no Archiva, depois coloque o arquivo “archetype-catalog.xml” gerado pelo maven e adicione a pasta \apps\archiva do archiva.
Parece que isso ainda é uma limitação do Archiva, por isso deve ser feito esta etapa manualmente.