Разделение файлов Ant - экстраполяция на более мелкие файлы? Есть ли чистый способ или лучший способ? - PullRequest
2 голосов
/ 07 января 2010

Я перерабатываю файл сборки ant, который мы использовали в нашем проекте в течение долгого времени. Это начинает становиться большим и громоздким с большим количеством целей и свойств. Я хочу экстраполировать и разбить его на более мелкие файлы.

Так как я довольно новичок в муравье, мне интересно

Какой самый распространенный способ разбить файлы build.xml на более мелкие части?

Я бы хотел сделать это самым простым и понятным способом, сохранив в каждом файле только связанные цели / свойства.

Так, например, все цели / свойства, связанные с компиляцией, будут помещены в один файл, все связанные с журналированием перейдут в другой, а все связанные с развертыванием - в третий. Таким образом, файл build.xml будет разрезан на 3 файла меньшего размера, которые намного легче пережевать.

Ответы [ 4 ]

4 голосов
/ 07 января 2010

Используйте Ant макросы для абстрагирования общих процессов, таких как компиляция, сборка архивов и т. Д. Это позволяет вам иметь довольно краткий, читаемый основной сценарий сборки с множеством однострочных или двухстрочных вызовов макросов и другой файл с многоразовыми процедурами общего назначения. Этого вида абстракции легче достичь, если вы использовали согласованные соглашения об именах / каталогах во всем проекте.

2 голосов
/ 07 января 2010

Сочетание макросов Ant и antlibs не только сократит ваши сценарии сборки, но и скроет всю сложность.

Например, вы можете взглянуть на мой любимый проект . Файлы Antlib упакованы в jar-файл, который находится в каталоге Ant Ant.

0 голосов
/ 07 января 2010

Carej, Моя главная причина состоит в том, чтобы было проще читать, понимать и поддерживать аналогично тому, как разделы кода в очень длинном методе могут быть экстраполированы на под методы. Как в:

public void vend() {
    /* 10 lines of code about accepting money */
    /* 10 lines of code about calculating change */
    /* 10 lines of code about vending soda */
}

Становится

public void vend() {
  acceptMoney();
  calculateChange();
  vendSoda();
}

С каждым из под-методов, имеющих куски кода, как в:

public void acceptMoney() {
    /* 10 lines of code about accepting money */
}

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

Было бы просто иметь смысл, что существует общепринятый способ объединить цели и свойства в отдельные файлы, все используемые одним файлом сборки. Кто-нибудь знает такой способ?

0 голосов
/ 07 января 2010

Зачем вам это нужно?

Разбиение файла на более мелкие части имеет смысл, если вы пытаетесь разделить общий набор логики между несколькими проектами (но хотите разделить только отдельные части), но разбить большой build.xml просто для того, чтобы иметь меньшие кусочки, кажется стоящим для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...