Maven archetypy

Maven archetypy

Last modified by Jakub Jirůtka on 2013-09-22, 20:04

Archetypy jsou Maven šablony, pomocí niž lze snadno vygenerovat předpřipravenou kostru projektu (adresářovou strukturu, konfiguráky, závislosti, ukázkové zdroje, …). Velmi usnadní zakládání nového projektu a navíc mohou obsahovat i doporučené verze knihoven, nastavení build procesu apod.

Archetypy FIT

Zde je seznam rodičovských POM a archetypů vytvořených pro fakultní projekty. Všechny jsou dostupné ve fakultním Maven repositáři, zdrojové kódy najdete v projektu maven-archetypes na GitLab.

  • cz.cvut.fit.maven:
    • root-parent – Root Parent
    • webapp-parent – Web Application Parent
    • spring-parent – Spring Based Application Parent
    • portlet-parent – Liferay Portlet Parent
  • cz.cvut.fit.maven.archetypes:
    • webapp-basic-archetype – Basic Webapp Archetyp
    • webapp-spring-archetype – Spring Based Application Archetype
    • spring-jpa-jsf-quickstart-archetype – Spring + Hibernate/JPA + JSF Archetype Quickstart
    • portlet-prime-archetype – Primefaces Portlet Archetype
    • portlet-prime-quickstart-archetype – Primefaces Portlet Archetype Quickstart
    • portlet-prime-spring-archetype – Primefaces Portlet with Spring Archetype
    • lib-archetype – Library Archetype

Přidání vzdáleného repozitáře

Abyste nemuseli pokaždé znovu zadávat adresu repozitáře, je lepší ho přednastavit v lokální konfiguraci vašeho Mavenu – soubor settings.xml. Na unixových systémech je obvykle v adresáři ${HOME}/.m2/. Pokud v něm soubor settings.xml nemáte, tak ho vytvořte:

<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">

   <activeProfiles>
       <activeProfile>defaultProfile</activeProfile>
   </activeProfiles>

   <profiles>
       <profile>
           <id>defaultProfile</id>
           <repositories>
               <repository>
                   <id>cvut-local-repos</id>
                   <name>CVUT Local Repositories</name>
                   <url>http://repository.fit.cvut.cz/maven/local-repos/</url>
                   <snapshots>
                       <enabled>true</enabled>
                   </snapshots>
               </repository>
               <repository>
                   <id>cvut-remote-repos</id>
                   <name>CVUT Remote Repositories</name>
                   <url>http://repository.fit.cvut.cz/maven/remote-repos/</url>
                   <snapshots>
                       <enabled>true</enabled>
                   </snapshots>
               </repository>
           </repositories>
           <pluginRepositories>
               <pluginRepository>
                   <id>cvut-local-repos</id>
                   <name>CVUT Repository</name>
                   <url>http://repository.fit.cvut.cz/maven/local-repos/</url>
                   <snapshots>
                       <enabled>true</enabled>
                   </snapshots>
               </pluginRepository>
           </pluginRepositories>
       </profile>
   </profiles>
</settings>

Jak používat archetypy?

Jak jistě víte, s Mavenem můžete pracovat pomocí řádkové utility mvn nebo prostřednictvím IDE (NetBeans, IntelliJ IDEA apod.)

Příkazová řádka

Kostru projektu můžete vygenerovat jednoduše pomocí příkazu mvn archetype:generate.

mvn archetype:generate                                  \
 -DarchetypeGroupId=cz.cvut.fit.maven.archetypes       \
 -DarchetypeArtifactId=<archetype-artifactId>          \
 -DarchetypeVersion=<archetype-version>                \
 -DinteractiveMode=true

To samé na jedné řádce pro copy&paste: mvn archetype:generate -DarchetypeGroupId=cz.cvut.fit.maven.archetypes -DarchetypeArtifactId=webapp-spring-archetype -DarchetypeVersion=1.1 -DinteractiveMode=true

Příklad: Chcete vygenerovat projekt z archetypu Quickstart Portlet with Primefaces:

mvn archetype:generate                                      \
 -DarchetypeGroupId=cz.cvut.fit.maven.archetypes           \
 -DarchetypeArtifactId=portlet-prime-quickstart-archetype  \
 -DgroupId=cz.cvut.tron-game                               \
 -DartifactId=tron-game-portlet                            \
 -Dpackage=cz.cvut.trongame.portlet                        \
 -DprojectName='Tron Game Portlet'                         \
 -DdeveloperName='Kevin Flynn'                             \
 -DdeveloperEmail='kevin@flynn.com'                        \
 -DaddRepositories=true

Pokud ve svém settings.xml nemáte fakultní repositář, tak ještě přidejte volbu -DarchetypeCatalog=http://repository.fit.cvut.cz/maven/
.

NetBeans

  1. File → New Project
  2. Categories: Maven, Projects: Project from Archetype
  3. Find archetype by artifactId
  4. Fill properties and do not forget developerName and developerEmail
  5. Finish!

Parametry Archetypů

Povinné:

  • archetypeGroupId: archetype’s groupId
  • archetypeArtifactId: archetype’s artifactId
  • groupId: project’s groupId (for school projects use prefix cz.cvut.)
  • artifactId: project’s artifactId
  • developerName: your full name
  • developerEmail: your e-mail address

Volitelné:

  • archetypeVersion: archetype’s version
  • version: project’s version [default 1.0-SNAPSHOT]
  • package: project’s base package
  • addRepositories: add repositories to generated POM? [default true]
  • javaVersion: target Java version 1.6 or 1.7 [default 1.6]
  • projectName: project’s name (may contain spaces etc.)
Tags: Maven
Created by Jakub Jirůtka on 2013-04-06, 16:51

This wiki is licensed under a Creative Commons BY-SA 3.0 license
XWiki Enterprise 5.4.1 - Documentation