Создание Maven ArcheType. Настройка имени файла

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

Вот пример.

artifactId= box

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

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


person Ahmad.Masood    schedule 12.09.2013    source источник


Ответы (2)


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

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

person Dimitar Ivanov    schedule 30.06.2014

В архетипе 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

person Dmytro    schedule 07.02.2014