Как управлять лицензионными баннерами в исходных файлах подключаемых проектов Eclipse

Я собираюсь выпустить набор плагинов Eclipse в качестве Open Source и заметил, что большинство исходных кодов, выпущенных под LGPL/EPL, содержит баннер заголовка в каждом файле, который ссылается на лицензию или содержит собственно лицензию.

Так как добавление этих баннеров в каждый файл вручную кажется сложной и подверженной ошибкам задачей. Как я могу автоматизировать вставку этих баннеров?

Ответ 1

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

BTW, ant задачи - это простые классы Java, поэтому их легко написать самостоятельно, если вы не найдете плагин ant, который делает именно это.

Придя к затмению, насколько мне известно, он не может сделать что-то подобное. Самый быстрый способ, который я могу сделать, - это bash (если вы используете Linux). Предположим, что файл msg содержит текст, который вы хотите добавить в начале каждого файла.

  • Создайте новый каталог для хранения файлов:

    mkdir ~/outdir

  • Добавьте msg в начале каждого файла и поместите результат в outdir

    для я в ls "*.java"; do cat msg $i > ~/outdir/$i; сделано

Аналогичным образом вы можете написать команду, которая делает то же самое рекурсивно, с дополнительным шагом для создания каталога strucutre:

mkdir ~/outdir
for i in `find -type d | sed 's/\.//' | grep -v "^$"`; do mkdir ~/outdir$i; done
for i in `find -name "*.java"`; do cat msg $i > ~/outdir/$i ; done

Ответ 2

Более похожий на Eclipse подход, чем дополнение к ручному, заключается в следующем: выполняется через графический интерфейс в Eclipse. Обратите внимание, что это меню Linux/Windows; Mac немного отличается.

  • Открыть Windows->Preferences
  • Перейдите к Java->Code Style->Code Templates
  • Отредактируйте шаблон комментария Comments->Files, чтобы включить ваш шаблон.
    Существуют переменные для текущего года, имя файла и т.д.

Обратите внимание, что это решение только для новых файлов; это не поможет вам со старыми файлами; для этого я бы использовал что-то вроде решения idrosid для вашего существующего кода