Fala surfzera. Obrigado. Bem interessante mesmo esse link que vc mandou. Eu nem sabia que dava pra usar IF nas configurações de POM.
Tem outro site que encontrei com um step-by-step muito bom também, e que respondeu grande parte das minhas dúvidas, então vou compartilhar aqui.
http://www.javacodegeeks.com/2012/02/maven-archetype-creation-tips.html
- Configurar os diretórios de source, test, resource e test resource da mesma forma que é feito no archetype.xml do plugin 1.0.
R. Cheguei à conclusão que é melhor usar o padrão do Maven mesmo. Embora a documentação sobre esse assunto seja bem escassa, pelo menos seguir o padrão funciona e não
tem pq procurar cabelo em ovo.
sources = src/main/java
resources = src/main/resources
tests = src/test/java
test resources = src/test/resources
- Também gostaria de setar o package de meu build de acordo com o groupId inserido na criação do projeto.
R. Seria bem mais fácil se a documentação de criação de archetypes citasse isso, mas essa parte já é feita automática. A questão é que quando criamos a estrutura citada acima, o
arquivo archetype-metadata.xml ficará com as seguintes seções:
<fileSets>
<fileSet filtered="true" encoding="UTF-8">
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
</includes>
</fileSet>
<fileSet filtered="true" encoding="UTF-8">
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
</includes>
</fileSet>
<fileSet filtered="true" encoding="UTF-8">
<directory>src/test/java</directory>
<includes>
<include>**/*.java</include>
</includes>
</fileSet>
<fileSet filtered="true" encoding="UTF-8">
<directory>src/test/resources</directory>
<includes>
<include>**/*.properties</include>
</includes>
</fileSet>
</fileSets>
Tudo o que precisamos fazer é incluir [i]packaged="true" [/i] nas tags [i]fileSet[/i]. Ficaria assim:
<fileSets>
<fileSet filtered="true" packaged="true" encoding="UTF-8">
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
</includes>
</fileSet>
<fileSet filtered="true" encoding="UTF-8">
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
</includes>
</fileSet>
<fileSet filtered="true" packaged="true" encoding="UTF-8">
<directory>src/test/java</directory>
<includes>
<include>**/*.java</include>
</includes>
</fileSet>
<fileSet filtered="true" encoding="UTF-8">
<directory>src/test/resources</directory>
<includes>
<include>**/*.properties</include>
</includes>
</fileSet>
</fileSets>
Também temos que atualizar os packages nas classes incluídas no build. São as classes que ficam em [i]archetype-resources/src[/i]. No meu caso ficou:
Depois é só dar o [i]mvn clean install[/i] na pasta [i]target/generated-sources/archetype[/i] e o archetype estará no nosso repositório local.
Espero que isso ajude as pessoas que, como eu, estão apanhando MUITO do Maven.