2013-09-12 3 views
10

Я хочу создать Archetype, в котором пользователь может предоставить artifactId. Затем я хочу взять этот artifactId и создать два файла. Вот пример.Создание Maven ArcheType. Настройка имени файла

artifactId= box 

FILE 1: copy-box.txt 
FILE 2 : Box.java 

Создание copy-box.txt довольно просто. Но как создать Box.java с капиталом B.

ответ

2

Я просматривал код, который создает замену в именах файлов архетипа ресурсов. (можно найти here). Мне кажется, что значения аргументов берутся из контекста, а это значит, что они не оцениваются. На мой взгляд, на данный момент невозможно (печально, но верно) использовать механизм оценки непосредственно в именах файлов.

Однако, просто реализуя интерфейс FilesetArchetypeGenerator, можно внести хороший вклад в генерацию архетипов.

1

Существует ошибка в архетипе maven. См. Отчеты об ошибках ARCHETYPE-406 и ARCHETYPE-397. При исправлении можно будет определить и использовать пользовательский requiredProperty для вашего случая. В архетипе-Metadata.xml добавить

<requiredProperties> 
    <requiredProperty key="classPrefix" > 
    <defaultValue> 
     ${artifactId.substring(0,1).toUpperCase()}${artifactId.substring(1)} 
    </defaultValue> 
    </requiredProperty> 
</requiredProperties> 

Не забудьте добавить classPrefix к archetype.properties

Смежные вопросы