2012-11-08 5 views
0

Je crée un plugin maven et je veux permettre à l'utilisateur de créer un projet en spécifiant quelques détails requis par mon plugin. Je comprends que lors de la création d'un projet avec simple, archétype mvn: générer il pointe la valeur par défaut Maven catalogue archtype qui demande groupId, artifactId, etc.Catalogue interactif d'archétype maven

La question est ici comment puis-je créer mon propre catalogue personnalisé afin que je puisse faire la création d'un projet interactif pour le client.

par exemple. Lorsqu'un client des points à mon catalogue archétype comme

mvn archetype:generate -DarchetypeCatalog=http://abc.com/archetype-catalog.xml 

il devrait être en mesure de voir ce qui suit,

Define value for project_home: C:/XYZ 
Define value for server-url: http://localhost:8080/ 
Define value for groupId: : com.xyz 
Define value for artifactId: : sample 
Define value for version: 1.0-SNAPSHOT: : 
Define value for package: com.xyz 
Confirm properties configuration: 
project-home: C:/XYZ 
server-url: http://localhost:8080/ 
groupId: com.xyz 
artifactId: sample 
version: 1.0-SNAPSHOT 
package: com.xyz 
Y: : 

Tout pointeur ou un lien sur le Web serait également utile.

Répondre

1

J'ai regardé Pustefix-archétype de base comme un exemple, et il est dans le META-INF/maven/archétype metadata.xml code suivant:

<requiredProperties> 
    <requiredProperty key="groupId"> 
     <defaultValue>mytld.myorg</defaultValue> 
    </requiredProperty> 
    <requiredProperty key="artifactId"> 
     <defaultValue>myapp</defaultValue> 
    </requiredProperty> 
    <requiredProperty key="version"> 
     <defaultValue>1.0-SNAPSHOT</defaultValue> 
    </requiredProperty> 
    <requiredProperty key="package"> 
     <defaultValue>mytld.myorg.myapp</defaultValue> 
    </requiredProperty> 
    <requiredProperty key="pustefixVersion"> 
     <defaultValue>0.18.30</defaultValue> 
    </requiredProperty> 
    </requiredProperties> 

Essayez d'ajouter vos propriétés :)