Я пытаюсь создать такую структуру архетипа, как веб-приложение с некоторыми пользовательскими папками для нашей веб-инфраструктуры. Особенно некоторые динамические папки, которые также будут содержать некоторые файлы, принесенные архетипом.
└───src
└───main
└───webapp
└───WEB-INF
├───cfg
│ ├───log4j
│ └───resources
│ └───extensions
│ ├───${shortName}-business
│ └───${shortName}-layout
└───lib
Я добавил обязательное свойство в archetype-metadata.xml
, чтобы иметь краткое имя для проекта, которое используется, среди прочего, для создания уникальных папок.
<requiredProperties>
<requiredProperty key="shortName" />
</requiredProperties>
Свойство shortName
Я использую в fileSet
:
<fileSet>
<directory>[..]/resources/extensions/${shortName}-business</directory>
</fileSet>
<fileSet>
<directory>[..]/resources/extensions/${shortName}-layout</directory>
</fileSet>
Команда для создания архетипа:
mvn archetype:generate -B \
-DgroupId=com.stackoverflow \
-DartifactId=stackoverflow-question -DarchetypeGroupId=com.stackoverflow \
-DarchetypeArtifactId=stackoverflow-archetype -DarchetypeVersion=1.0 \
-DshortName=soq
Я предполагаю получить следующую структуру папок:
..\
├───soq-business
└───soq-layout
Но я получаю это имя ${shortName}-business
как папку, без замены на свойство.
..\
├───${shortName}-business
└───${shortName}-layout
Как мне этого добиться? Как я могу разместить файлы ниже soq-business
, не зная имени папки в это время?