Java-библиотека, обеспечивающая функционал, аналогичный make.

Вопрос или проблема

Я ищу библиотеку, которая предоставляет такую же или похожую функциональность, как make:

  • определение правил:
    • входной файл(ы) – имена / маска / шаблон regex,
    • выходной файл(ы) – имена / маска / шаблон regex,
    • команда (экземпляр, реализующий некоторый интерфейс, подобный Runnable),
  • определение устаревших выходных данных на основе (метка времени) изменений входных файлов.

ИЗМЕНИЕ:

Библиотека должна быть лицензирована под лицензией, которая совместима с Apache 2.0.

Я нашел Make in Java, который, не тратя слишком много времени на поиск, кажется реализацией make на Java (или чем-то похожим на make). Он лицензирован по LGPL.

Ответ или решение

Библиотека Java, обеспечивающая функциональность, аналогичную make

Если вы ищете библиотеку, которая предоставляет функциональность, схожую с утилитой make, я бы рекомендовал обратить внимание на несколько вариантов, которые могут удовлетворить ваши требования. Ваша задача состоит в том, чтобы определить правила, основанные на входных и выходных файлах, а также выполнять команды, зависящие от состояния этих файлов. Ниже представлены некоторые библиотеки, которые могут соответствовать вашим критериям:

1. Apache Ant

Описание: Apache Ant — это мощная библиотека для автоматизации сборки проектов на Java. Она использует XML-файлы для определения задач и зависимостей, что делает управление сборкой гибким и настраиваемым.

Ключевые характеристики:

  • Поддерживает определение правил с использованием XML, где вы можете указать входные и выходные файлы.
  • Позволяет реализовать зависимость между задачами, что позволяет выполнять команды только в случае изменения входных данных.
  • Подходит для проектов, требующих частой сборки и автоматизации.

Лицензия: Apache License 2.0 — полностью совместима с вашими требованиями.

2. Gradle

Описание: Gradle — это современная система автоматизации сборки, которая позволяет писать сценарии сборки на Groovy или Kotlin. Если вы ищете более продвинутую и гибкую альтернативу Ant или Make, Gradle может стать отличным выбором.

Ключевые характеристики:

  • Обеспечивает возможности определения правил на основе входных и выходных файлов.
  • Позволяет внедрять сложные логики сборки с использованием кода, что может быть полезно для динамических или многоступенчатых сборок.
  • Автоматически отслеживает изменения в файлах и выполняет только те задачи, которые необходимо обновить.

Лицензия: Apache License 2.0.

3. JMake

Описание: JMake — библиотека, вдохновленная концепцией make, но разработанная с нуля на Java. Она предоставляет возможность определять правила и зависимости, аналогично утилите make, но в контексте Java.

Ключевые характеристики:

  • Шаблоны для файлов и команд могут быть заданы с использованием регулярных выражений, что обеспечивает гибкость в управлении входными и выходными файлами.
  • Поддержка определения правил на Java и других языках.
  • Упрощенное управление зависимостями на основе таймстампов.

Лицензия: Проверьте конкретную лицензию на сайте разработчиков, чтобы убедиться, что она совместима с Apache 2.0.

Заключение

Для выбора библиотеки, соответствующей вашим требованиям, важно учитывать простоту интеграции и уровень поддержки, который предоставляют различные инструменты. Apache Ant и Gradle — это устоявшиеся решения в сообществе Java, которые предоставляют обширную документацию и активное сообщество для поддержки.

Если вы рассматриваете библиотеки с LGPL, такие как Make in Java, уважайте лицензионные ограничения и протестируйте их работу на вашем проекте, чтобы убедиться, что они удовлетворяют всем вашим требованиям.

Надеюсь, данная информация поможет вам сделать осознанный выбор! Если будут дополнительные вопросы, не стесняйтесь задавать.

Оцените материал
Добавить комментарий

Капча загружается...