Что такое инструмент сборки? - PullRequest
107 голосов
/ 31 августа 2011

В течение последних 4 лет я программировал с Eclipse (для Java) и Visual Studio Express (для C #). Упомянутые IDE, казалось, всегда предоставляли все возможности, которые может попросить программист (конечно, связанные с программированием).

В последнее время я слышал о чем-то, что называется "инструменты сборки". Я слышал, что они используются почти во всех видах реального развития мира. Что именно они? Какие проблемы они предназначены для решения? Почему я никогда не нуждался в них за последние четыре года? Являются ли они своего рода командной строкой, урезанной IDE?

Ответы [ 8 ]

100 голосов
/ 22 октября 2013

Что такое инструменты сборки?

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

По сути, автоматизация сборки - это сценарий или автоматизация широкого спектра задач, которые разработчики программного обеспечения выполняют в своей повседневной деятельности, таких как:

  1. Загрузка зависимостей.
  2. Компиляция исходного кода в двоичный код.
  3. Упаковка этого двоичного кода.
  4. Выполнение тестов.
  5. Развертывание в производственных системах.

Почему мы используем инструменты сборки или автоматизацию сборки?

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

Доступны различные инструменты сборки (только несколько имен):

  1. Для Java - Ant, Maven, Gradle.
  2. Для .NET Framework - NAnt
  3. c # - MsBuild.

Для дальнейшего чтения выможно ссылаться по следующим ссылкам:

1. Автоматизация сборки

2. Список программного обеспечения для автоматизации сборки

Спасибо.

17 голосов
/ 31 августа 2011

Инструменты сборки - это инструменты для управления и организации ваших сборок, и они очень важны в средах, где много проектов, особенно если они взаимосвязаны.Они служат для того, чтобы убедиться, что, когда разные люди работают над различными проектами, они ничего не ломают.И чтобы убедиться, что когда вы вносите свои изменения, они тоже ничего не ломают.

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

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

10 голосов
/ 31 августа 2011

Инструменты сборки обычно запускаются в командной строке, либо внутри IDE, либо полностью отдельно от нее.

Идея состоит в том, чтобы отделить работу по компиляции и упаковке вашего кода от создания, отладки и т. Д.

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

make был ранним инструментом управления, используемым в * nix-средах для сборки C / C ++.

Как разработчик Java, наиболее популярными инструментами сборки являются Ant и Maven.Оба могут быть запущены в IDE, таких как IntelliJ, Eclipse или NetBeans.Они также могут использоваться инструментами непрерывной интеграции, такими как Cruise Control или Hudson.

4 голосов
/ 09 августа 2013

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

Eclipse или Visual Studio также являются системами сборки (но в большей степени IDE), и для Visual Studio это базовый msbuild для анализа файлов проекта Visual Studio под капотом.

Кажется, что происхождение всех систем сборкинапример, знаменитый make.

Существуют системы сборки для разных языков:

  1. C ++: make, cmake, premake
  2. Java: ant + ivy, maven, gradle
  3. C #: msbuild

Обычно для сборки систем используется специальный язык домена (make, cmake) или xml (ant, maven, msbuild) для указания сборки,Современная тенденция заключается в использовании реального языка сценариев для написания сценариев сборки, таких как lua ​​для premake и groovy для gradle. Преимущество использования сценариев заключается в том, что он гораздо более гибкий, а также позволяет создавать набор стандартов.API (как сборка DSL).

1 голос
/ 19 февраля 2015

Это разные типы процессов, с помощью которых вы можете выполнить сборку.

1. Построение непрерывной интеграции: В этом случае разработчики, в основном, регистрируют свой код, и сразу после регистрации запускается сборка для создания последних изменений, поэтому мы должны знать, сработали ли изменения, внесенные разработчиком, сразу после регистрация завершена. Это предпочтительно для небольших проектов или компонентов проектов. В случае, когда несколько команд связаны с проектом или есть большое нет. разработчикам, работающим над одним и тем же проектом, этот сценарий становится трудным для обработки, как будто 'n' нет регистрации и сбоя сборки в определенные моменты, становится очень трудно отследить, произошла ли вся поломка из-за одной проблемы или из-за нескольких проблем, поэтому, если более старые проблемы не решены должным образом, становится труднее отследить более позднюю дефекты, которые произошли после этого изменения. Основное преимущество этих сборок заключается в том, что мы узнаем, прошла ли конкретная регистрация успешно или нет.

2. Сборки с закрытой регистрацией: При такой проверке сборка инициируется сразу после того, как регистрация выполнена, сохраняя изменения в наборах полок. В этом случае, если сборка завершится успешно, регистрация на полку будет зафиксирована, иначе она не будет зафиксирована на Team Foundation Server. Это дает немного лучшую картину из сборки с непрерывной интеграцией, поскольку только успешные регистрации могут быть зафиксированы.

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

Более подробную информацию об этих сборках можно найти в расположении ниже.

Gated-check in Builds

Сборки с непрерывной интеграцией

Ночные сборки

1 голос
/ 10 декабря 2013

Процесс сборки - это процесс компиляции исходного кода для любых ошибок с использованием некоторых инструментов сборки и создания сборок (которые являются исполняемыми версиями проекта). Мы (в основном разработчики) вносим некоторые изменения в исходный код и регистрируем этот код для того, чтобы процесс сборки происходил. После процесса сборки он дает два результата: 1. Либо соберите PASSES, и вы получите исполняемую версию вашего проекта (Build is ready). 2. Сбой, и вы получаете определенные ошибки, и сборка не создается.

Существуют различные типы процесса сборки, такие как: 1. Ночная сборка 2. закрытая сборка 3. Непрерывная интеграция, сборка и т. Д.

Инструменты сборки помогают и автоматизируют процесс создания сборок.

* Таким образом, Short Build представляет собой версию программного обеспечения в предварительном формате, используемую командой разработчиков или разработчиков, чтобы обрести уверенность в конечном результате своего продукта, постоянно отслеживая свой продукт и решая любые проблемы. в начале процесса разработки. *

0 голосов
/ 25 декабря 2017

«... очень сложно отследить, что нужно собрать» - инструменты сборки не помогают в этом.Вы должны знать, что вы хотите построить.(Цитируется из ответа Ritesh Gun)

«Я слышал, что они используются практически во всех видах реальных разработок» - по какой-то причине разработчики программного обеспечения любят работать в крупных компаниях.Кажется, у них есть более неясные рабочие директивы для каждого работающего там человека.

"Почему я никогда не нуждался в них в течение последних четырех лет".Возможно, потому что вы опытный программист.

Псевдо, мета.Я думаю, что инструменты сборки вообще не дают никакой реальной выгоды.Это просто добавление чувства безопасности, возникающего из-за плохой практики компании, отсутствия руководства - плохого лидерства в архитектуре программного обеспечения, приводящего к плохому фактическому знанию проекта.Вы никогда не должны использовать инструменты сборки (для тестирования) в вашем проекте.Проведение случайного тестирования с недостатком знаний о программном проекте вообще не помогает.

Никогда не следует добавлять что-либо в проект, не зная его цели и того, как он будет работать сдругие компоненты.Компоненты могут быть функциональными по отдельности, но не работать вместе.(Это ответственность архитектора программного обеспечения, я полагаю).

Что, если в проект будет добавлено 4-5 компонентов.Вы добавляете 6-й компонент.Вместе с первым добавленным компонентом он может все испортить.Никакая автоматика не помогла бы обнаружить это.

Нет другого пути, кроме как думать, думать, думать.

Тогда есть автоматическая загрузка из репозиториев.Зачем тебе это делать?Вам нужно знать, что вы скачиваете, что вы добавляете в проект.Как вы обнаруживаете изменения в версиях репозиториев?Ты должен знать.Вы не можете ничего «авто».

Что, если бы мы проверили велосипеды и детские транспорты с завязанными глазами с палкой и просто случайно ударили по ней.Это похоже на идею тестирования инструментов сборки.

Извините, ярлыков нет https://en.wikipedia.org/wiki/Scientific_method и https://en.wikipedia.org/wiki/Analysis

0 голосов
/ 31 августа 2011

Вы использовали их - IDE - это инструмент для сборки. Для командной строки вы можете использовать такие вещи, как make.

Люди используют инструменты командной строки для таких вещей, как ночная сборка - поэтому утром с похмелья программист понял, что код, с которым он возился с последними сборками библиотек, не работает!

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