Вопрос или проблема
Я ищу библиотеку, которая предоставляет такую же или похожую функциональность, как 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
, уважайте лицензионные ограничения и протестируйте их работу на вашем проекте, чтобы убедиться, что они удовлетворяют всем вашим требованиям.
Надеюсь, данная информация поможет вам сделать осознанный выбор! Если будут дополнительные вопросы, не стесняйтесь задавать.