Создание Maven ArcheType. Настройка имени файла
Я хочу создать Archetype, в котором пользователь может предоставить artifactId. Затем я хочу взять этот artifactId и создать два файла. Вот пример.
artifactId= box
FILE 1: copy-box.txt
FILE 2 : Box.java
Создание copy-box.txt довольно просто. Но как создать Box.java с капиталом B.
Ответы
Ответ 1
Я просмотрел код, который создает замену в именах файлов архетипа. (здесь можно найти здесь). Мне кажется, что значения аргументов берутся из контекста, а это значит, что они не оцениваются. На мой взгляд, на данный момент невозможно (печально, но верно) использовать механизм оценки непосредственно в именах файлов.
Однако, просто реализуя интерфейс FilesetArchetypeGenerator, можно внести хороший вклад в генерацию архетипов.
Ответ 2
В maven-архетипе есть ошибка. См. Отчеты об ошибках ARCHETYPE-406 и ARCHETYPE-397.
При исправлении можно будет определить и использовать пользовательский requiredProperty для вашего дела.
В файле archetype-metadata.xml добавьте
<requiredProperties>
<requiredProperty key="classPrefix" >
<defaultValue>
${artifactId.substring(0,1).toUpperCase()}${artifactId.substring(1)}
</defaultValue>
</requiredProperty>
</requiredProperties>
Не забудьте добавить classPrefix в archetype.properties