Dando continuação ao Maven vamos começar a pensar em algo mais, por exemplo, vou mostrar como construí o POM base dos meus projetos, chamado de: Gaia Parent.
Primeiramente num projeto Maven precisa-se de basicamente 3 coisas:
- groupId: indica a qual grupo de projetos este projeto faz parte;
- artifactId: caracteriza o projeto atual;
- version: indica a versão na qual este projeto se encontra.
No Gaia Parent:
- groupId: net.sf.gaia
- artifactId: gaia-parent
- version: 1.0
Logo teriamos basicamente o seguinte XML: pom). Se eu possuí-se códigos Java e necessitá-se que no final do processo de compilação fosse gerado um jar, teria que alterar a tag para: jar .
Mas se alguém tentar compilar este projeto nesse momento verá que ele não tem nenhuma serventia, pois não nos diz nada!
Bom, como nada? Bem é simples, o projeto Gaia Parent tem como função ser o projeto pai de todos os meus projetos. Como assim? Resposta simples: "Eu quis assim!"
Continuando, como sendo sendo um projeto na qual todos meus outros projetos farão uso eu preciso que ele possua algo que todos possam usar e que não atrapalhe a compilação dos projetos. Por isso estruturei que o Gaia Parent armazena-se principalmente a lista de repositórios de onde todos os projetos possam buscar suas dependências sem nenhum problema.
Não vou postar toda a lista de dependência, até porque ela é bem grandinha. Mas se você fizer questão de ver ou mesmo tiver o interesse de adicionar algumas no seu projeto, sugiro que olhe o POM que está versionado no SVN: download.
E para que não está com tanto saco assim de baixar o POM e olhar detalhadamente fica a versão mais compacta a baixo:
Primeiramente num projeto Maven precisa-se de basicamente 3 coisas:
- groupId: indica a qual grupo de projetos este projeto faz parte;
- artifactId: caracteriza o projeto atual;
- version: indica a versão na qual este projeto se encontra.
No Gaia Parent:
- groupId: net.sf.gaia
- artifactId: gaia-parent
- version: 1.0
Logo teriamos basicamente o seguinte XML:
<project>
<modelVersion>4.0.0</modelVersion>
<artifactId>gaia-parent</artifactId>
<groupId>net.sf.gaia</groupId>
<version>1.0</version>
<name>Gaia Parent</name>
<description>Parent pom for Gaia Projects</description>
<packaging>pom</packaging>
</project>
Esse simples XML já define o projeto do Gaia Parent no Maven, onde não será gerado um jar no final da compilação. Veja que a tag packaging define se o projeto será apenas (como dizer? ...) um projeto de definições (<modelVersion>4.0.0</modelVersion>
<artifactId>gaia-parent</artifactId>
<groupId>net.sf.gaia</groupId>
<version>1.0</version>
<name>Gaia Parent</name>
<description>Parent pom for Gaia Projects</description>
<packaging>pom</packaging>
</project>
Mas se alguém tentar compilar este projeto nesse momento verá que ele não tem nenhuma serventia, pois não nos diz nada!
Bom, como nada? Bem é simples, o projeto Gaia Parent tem como função ser o projeto pai de todos os meus projetos. Como assim? Resposta simples: "Eu quis assim!"
Continuando, como sendo sendo um projeto na qual todos meus outros projetos farão uso eu preciso que ele possua algo que todos possam usar e que não atrapalhe a compilação dos projetos. Por isso estruturei que o Gaia Parent armazena-se principalmente a lista de repositórios de onde todos os projetos possam buscar suas dependências sem nenhum problema.
Não vou postar toda a lista de dependência, até porque ela é bem grandinha. Mas se você fizer questão de ver ou mesmo tiver o interesse de adicionar algumas no seu projeto, sugiro que olhe o POM que está versionado no SVN: download.
E para que não está com tanto saco assim de baixar o POM e olhar detalhadamente fica a versão mais compacta a baixo:
<project>
<modelVersion>4.0.0</modelVersion>
<artifactId>gaia-parent</artifactId>
<groupId>net.sf.gaia</groupId>
<version>1.0</version>
<name>Gaia Parent</name>
<description>Parent pom for Gaia Projects</description>
<packaging>pom</packaging>
<repositories>
<repository>
<id>ibiblio</id>
<name>ibiblio Maven 2 Repository</name>
<url>http://mirrors.ibiblio.org/pub/mirrors/maven2</url>
</repository>
<repository>
<id>ibiblio legacy</id>
<name>ibiblio Maven 1 Repository</name>
<url>http://mirrors.ibiblio.org/pub/mirrors/maven</url>
<layout>legacy</layout>
</repository>
<repository>
<id>central</id>
<name>Maven2 Central Repository</name>
<url>http://repo1.maven.org/maven2</url>
</repository>
<repository>
<id>codehaus-repository</id>
<name>codehaus maven2 repository</name>
<url>http://repository.codehaus.org</url>
</repository>
<repository>
<id>MMBase</id>
<name>MMBase Maven 2 Repository</name>
<url>http://www.mmbase.org/maven2</url>
</repository>
<repository>
<id>Geotools</id>
<name>Geotools Maven 2 Repository</name>
<url>http://maven.geotools.fr/repository</url>
</repository>
<repository>
<id>CMS</id>
<name>CMS Container repository</name>
<url>http://www.cmscontainer.org/files/maven/</url>
<layout>legacy</layout>
</repository>
<!-- Gaia developer repository for any gaia artifacts -->
<repository>
<id>Gaia-repo</id>
<name>Gaia Developer Repository</name>
<url>https://gaia-framework.svn.sourceforge.net/svnroot/gaia-framework/gaia-repository</url>
<releases> <checksumPolicy>ignore</checksumPolicy> </releases>
<snapshots> <enabled>false</enabled> </snapshots>
</repository>
</repositories>
</project>
<modelVersion>4.0.0</modelVersion>
<artifactId>gaia-parent</artifactId>
<groupId>net.sf.gaia</groupId>
<version>1.0</version>
<name>Gaia Parent</name>
<description>Parent pom for Gaia Projects</description>
<packaging>pom</packaging>
<repositories>
<repository>
<id>ibiblio</id>
<name>ibiblio Maven 2 Repository</name>
<url>http://mirrors.ibiblio.org/pub/mirrors/maven2</url>
</repository>
<repository>
<id>ibiblio legacy</id>
<name>ibiblio Maven 1 Repository</name>
<url>http://mirrors.ibiblio.org/pub/mirrors/maven</url>
<layout>legacy</layout>
</repository>
<repository>
<id>central</id>
<name>Maven2 Central Repository</name>
<url>http://repo1.maven.org/maven2</url>
</repository>
<repository>
<id>codehaus-repository</id>
<name>codehaus maven2 repository</name>
<url>http://repository.codehaus.org</url>
</repository>
<repository>
<id>MMBase</id>
<name>MMBase Maven 2 Repository</name>
<url>http://www.mmbase.org/maven2</url>
</repository>
<repository>
<id>Geotools</id>
<name>Geotools Maven 2 Repository</name>
<url>http://maven.geotools.fr/repository</url>
</repository>
<repository>
<id>CMS</id>
<name>CMS Container repository</name>
<url>http://www.cmscontainer.org/files/maven/</url>
<layout>legacy</layout>
</repository>
<!-- Gaia developer repository for any gaia artifacts -->
<repository>
<id>Gaia-repo</id>
<name>Gaia Developer Repository</name>
<url>https://gaia-framework.svn.sourceforge.net/svnroot/gaia-framework/gaia-repository</url>
<releases> <checksumPolicy>ignore</checksumPolicy> </releases>
<snapshots> <enabled>false</enabled> </snapshots>
</repository>
</repositories>
</project>
Nenhum comentário:
Postar um comentário