Provo a costruire una struttura di archetipo come questa, una webapp con alcune cartelle personalizzate per il nostro framework web. Soprattutto alcune cartelle dinamiche che conterranno anche alcuni file portati dall'archetipo.Come creare cartelle con nomi dinamici con Maven2 Archetype?
└───src
└───main
└───webapp
└───WEB-INF
├───cfg
│ ├───log4j
│ └───resources
│ └───extensions
│ ├───${shortName}-business
│ └───${shortName}-layout
└───lib
ho aggiunto una proprietà richiesta al mio archetype-metadata.xml
di avere un breve nome per il progetto, che viene utilizzato tra le altre cose per la generazione di cartelle uniche.
<requiredProperties>
<requiredProperty key="shortName" />
</requiredProperties>
La proprietà shortName
io uso in un fileSet
:
<fileSet>
<directory>[..]/resources/extensions/${shortName}-business</directory>
</fileSet>
<fileSet>
<directory>[..]/resources/extensions/${shortName}-layout</directory>
</fileSet>
Il comando per generare l'archetipo:
mvn archetype:generate -B \
-DgroupId=com.stackoverflow \
-DartifactId=stackoverflow-question -DarchetypeGroupId=com.stackoverflow \
-DarchetypeArtifactId=stackoverflow-archetype -DarchetypeVersion=1.0 \
-DshortName=soq
suppongo per ottenere la seguente struttura di cartelle:
..\
├───soq-business
└───soq-layout
Ma ottengo, ad es. questo nome ${shortName}-business
come cartella. Senza essere sostituito con la proprietà.
..\
├───${shortName}-business
└───${shortName}-layout
Come posso ottenere questo? E come posso inserire file al di sotto di soq-business
? Senza sapere il nome della cartella in questo momento?
Grazie, funziona benissimo. – codevour
Il blog non è disponibile. Forse il link è rotto, qualcuno potrebbe aggiornarlo per favore! –
tutte le informazioni necessarie sono nella risposta stessa –