Ответ 1
вам может быть интересно:
Также проверьте эту статью на ant функции для больших проектов".
Я работаю над большой С++-системой, созданной с помощью ant + cpptasks. Он работает достаточно хорошо, но файл build.xml выходит из-под контроля из-за стандартной операционной процедуры для добавления новой библиотеки или исполняемой цели для копирования и вставки других правил lib/exe (которые уже довольно велики). Если это был "правильный код", он будет кричать на рефакторинг, но, будучи новичком ant (больше используется для создания или решений VisualStudio), я не уверен, что это за варианты.
Что представляют собой ant лучшие методы пользователей для остановки разрастания файлов сборки ant?
Один очевидный вариант - создать build.xml через XSLT, определяя наши собственные теги для часто повторяющихся шаблонов. Кто-нибудь это делает, или есть ли лучшие способы?
вам может быть интересно:
Также проверьте эту статью на ant функции для больших проектов".
Если правила повторяются, вы можете разложить их в макрос ant с помощью макроопределения и повторно использовать этот макрос.
Если это чистый размер файла, который неуправляем, вы можете разбить его на более мелкие файлы и иметь основные цели вызова build.xml в этих файлах.
Если это ни одно из них, то вы можете захотеть использовать систему сборки. Несмотря на то, что я сам не использовал Maven, я слышал, что он может решить многие проблемы больших и неуправляемых файлов сборки.
В общем случае, если ваш файл сборки является большим и сложным, то это четкое указание на то, что способ, которым вы располагаете свой код, с точки зрения папок и пакетов, является сложным и слишком сложным. Я нахожу, что сложный ant script - это чистый запах плохо выложенной базы кода.
Чтобы исправить это, подумайте о том, как выкладывается ваш код. Сколько у вас проектов? Знают ли эти проекты, как построить себя с помощью master build script, который знает, как объединить отдельные проекты/приложения/компоненты вместе в большее целое.
Когда вы являетесь рефакторингом кода, вы смотрите на способы или разрушаете вещи, чтобы их было легче понять - более мелкие методы, меньшие классы, методы и классы, которые делают одно. Вам также необходимо применить эти принципы к своей базе кода.
Создавайте небольшие компоненты, которые являются функционально сплоченными и очень слабо отделены от остальной части кода. Используйте build script для сборки этого компонента в библиотеке. Сделайте это с остальной частью вашего кода. Теперь создайте мастер-сборку script, которая знает, как собрать все ваши библиотеки и собрать их в ваше приложение. Если у вас несколько приложений, тогда создайте build script для каждого приложения и мастера, который знает, как связать приложения с дистрибутивами.
Вы должны уметь видеть и понимать структуру и структуру базы кода, просто просматривая скрипты сборки. Если они/не являются чистыми и понятными, то и ваш исходный код не является.
Используйте файлы Antlib. Это очень чистый способ
Если вы хотите увидеть пример, вы можете взглянуть на некоторые из build script Я пишу для своего проекты песочницы.
Я бы попробовал Ant -Ivy- гибкий менеджер зависимостей. Мы недавно начали использовать его для некоторых из наших более сложных систем, и это работает как шарм. Преимущество здесь в том, что вы не получаете накладные расходы и переход на maven (он использует ant цели, поэтому будет работать с вашей текущей настройкой). Вот сравнение между ними.