Что Вы используете для сложного процесса сборки? [закрытый]

Рассмотрим обновление внутреннего объединения через три самостоятельных объединения:

UPDATE " . POSTS_TABLE . " AS final
INNER JOIN " . POSTS_TABLE . " AS p
  ON p.poster_id = final.poster_id
  AND p.topic_id = final.topic_id
  AND p.topic_id = $topic_id
  AND p.post_id NOT IN ($merged_post_list)
  AND p.anonymous_index > 0
INNER JOIN " . POSTS_TABLE . " AS merged 
  ON merged.poster_id = p.poster_id
  AND merged.topic_id = p.topic_id 
  AND merged.topic_id = $topic_id
  AND merged.post_id IN ($merged_post_list)
  AND merged.anonymous_index > 0

SET final.anonymous_index = p.anonymous_index

WHERE final.anonymous_index > 0
  AND final.anonymous_index <> p.anonymous_index
11
задан Instantsoup 6 February 2009 в 16:57
поделиться

14 ответов

Кроме Муравья Вы упомянули, и покрытые рубцами делают/автооснащают, основные инструменты:

Я использую SCons, потому что это - Python, базирующийся, хорошо финансируемый и изящный. Затор, кажется, самый прагматический. Я не знаю слишком много о CMake. Знаток может быть выбором для Вас, поскольку это - центральный Java и больше высокого уровня, чем Муравей.

Больше можно найти в Википедии: Список созданных инструментов

8
ответ дан 3 December 2019 в 03:05
поделиться

Я использую Грабли везде, я могу. Где необходимо создать код Java, Вы могли бы использовать его с jruby или посмотреть на что-то как: buildr

0
ответ дан 3 December 2019 в 03:05
поделиться

Я должен добавить к этому единственному решению, без которого я не могу жить ... оно называется Хадсон . Настройка занимает всего несколько секунд, и вы обычно можете сойти с рук почти всего того, что ваши существующие файлы ANT уже делают.

Кроме того, Hudson предоставляет отличный способ "cron" сборки, выполнения тестовых случаев и генерации "артефактов". msgstr "(например, создавать продукты) таким образом, чтобы каждый мог скачать.

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

0
ответ дан 3 December 2019 в 03:05
поделиться

Попробуйте FinalBuilder

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

С небольшим количеством планирования может быть очень оптимизировано.

0
ответ дан 3 December 2019 в 03:05
поделиться

Мы используем luntbuild. Это - веб-приложение, это очень просто в использовании. Это проверит из CVS/SVN, автоматически увеличит версию/номер сборки, выполнить задачи сборки в скриптах Ant и отметить Ваш репозиторий с новой версией. Может запланировать автоматические сборки, иметь, это посылает Вам по электронной почте или связывается с Вами через IM, также имеет зависимости от сборки и безопасность.

Мы все еще используем версию 1.2.3, но я вижу, что это - до 1.6.0. Это просто работает.

http://luntbuild.javaforge.com/

Править: Перечитывание вопроса, который я вижу теперь, когда Вы ищете что-то для замены Муравья. В нашем случае Муравей не является действительно проблемой. У нас есть установка проектов в Netbeans, который использует Муравья для создания, и мы просто должны реализовать некоторые рычаги в существующие сценарии, предоставленные Netbeans, который очень легко сделать.

Править: Похож на Вас, может назвать Муравья от Groovy. Это было бы хорошо, потому что затем можно снова использовать все задачи, которые уже существуют для Муравья.

http://groovy.codehaus.org/Using+Ant+from+Groovy

0
ответ дан 3 December 2019 в 03:05
поделиться

Мне нравится Муравей, но только если Вы проводите время для записи собственных плагинов Java для инкапсуляции сложных действий. Это не твердо, но к сожалению большинство людей пытается записать свою логику в XML w/the материал муравья-contrib. Я думаю, что это - огромная ошибка.

Я услышал хорошие вещи о граблях и отличных инструментах (упомянутый в другом комментарии), но у меня нет опыта с ними.

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

Другое место для выяснения у этого вида вопроса является списком рассылки CITCON. CITCON является конференцией по Непрерывной Интеграции и Тестированию, и связанный список рассылки превратился в действительно великое сообщество вокруг этих видов тем.

(Я - организатор для CITCON, но работы любви не прибыльное предприятие. Это действительно имеет действительно полезный список рассылки. Если бы я был жалким что-то за деньги, то это были бы Парни CI.;-))

1
ответ дан 3 December 2019 в 03:05
поделиться

Я пошел бы с Муравьем любой день недели.

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

Сложная логика может быть пересмотрена с помощью Java и интегрирована у муравья, если Вы, так пожелайте. Муравей дает Вам все питание Java:)

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

У меня также есть некоторый опыт и со Знатоком 1 и со Знатоком 2. Тот опыт оставил меня с чувством, что Знаток является удивительным для проектов хобби, но может иметь сложности для программного обеспечения, которое необходимо поддерживать со временем.

Я вижу две важных проблемы со Знатоком:

  • Любая зависимость Вы импортируете Знатока использования, может изменяться со временем без Вас знающий это, приводя к странным проблемам.
  • Вы импортируете лицензии не только программное обеспечение, Вы импортируете непосредственно использующего Знатока, но также и лицензии, используемые библиотеками, которые косвенно импортируются

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

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

Мой совет, если Вы и Ваша команда знаете, как иметь дело с муравьем, пытается осуществить рефакторинг Ваш файл муравья и не вскакивает на некоторый другой инструмент сборки. Просто требуется слишком много времени для разбираний в нем; время Вы могли потратить делание денег и выживание как компания :)

1
ответ дан 3 December 2019 в 03:05
поделиться

Я использую Знатока, не только для сборки, я также использую их release/dist плагин.

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

Дескрипторы плагина выпуска, обновляющие номера версий, dist обрабатывает, как соединить все и архивировать его.

Муравей выглядит твердым по сравнению со Знатоком. Уверенный существует кривая обучения со Знатоком, но чтение pom.xml намного легче, чем чтение build.xml.

Знаток должен быть намного менее подробным.

2
ответ дан 3 December 2019 в 03:05
поделиться

Также смотрите на

В то время как системы сборки более общего назначения как SCons очень мощны, поддержка Java несколько ограничена по сравнению с системами, особенно адаптированными для разрабатывания проектов Java.

4
ответ дан 3 December 2019 в 03:05
поделиться

Я использую Муравья, используя в своих интересах его макро-функцию. Если Вы расположение Ваш проект последовательным способом, можно устранить много дублирования путем записи макросов.

Я создавал Antlib, содержащий макросы и пользовательские задачи, которые я снова использую через несколько проектов.

С другой стороны, некоторые люди клянутся Знатоком. Другие люди просто клянутся о Знатоке.

3
ответ дан 3 December 2019 в 03:05
поделиться

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

3
ответ дан 3 December 2019 в 03:05
поделиться

Если Вы будете преследовать Знатока, то у Вас будет две проблемы: сложная сборка и изучение f @*#ing "волшебство" Знатока. Знаток просто делает проблему хуже, потому что это является тупым и чрезмерно сложным.

Я наследовал Знатока прежней версии 1.x сборка в крупной компании Fortune 500. Я использовал Знатока 2.x по выбору на многих других проектах в последние годы. Я оценил Маэстро в надеждах, что это могло бы сделать Знатока послушным. Мое заключение, как многие другие народы (проверяют 'сеть), состоит в том, что Знаток является большим шагом в неправильном направлении. Это определенно не улучшение по сравнению с Муравьем.

Я много лет использовал Муравья, включая запись крупной библиотеки с открытым исходным кодом сценариев помощника Муравья. Я также экстенсивно использовал его кузена.NET nAnt. Однако у Муравья есть два основных сбоя. Один, XML является просто не правильным местом для выполнения задач сборки. Два, Муравей и XML не масштабируются хорошо к большим, сложным сборкам. На самом деле я записал много здесь в ТАК о моих событиях на той арене (и со Знатоком).

Лидеры отрасли пришли к заключению, что сборка является просто другим приложением и должна быть приближена с помощью инструментов общего применения. Однако, так как это включает системный уровень и межплатформенную функциональность, большинство языков/платформ разработки правильно не подходит (который включает Java, и поэтому Муравья и Знатока). Это также исключает.NET.

Я провел два года, ища альтернативу, и я нашел его: Python. Это имеет правильную комбинацию доступа системного уровня, межплатформенной мобильности, простоты, удобочитаемости, питания, устойчивости и зрелости. SCons, buildbot, setuptools/easyinstall, и основной Python являются моей текущей целевой платформой для процесса сборки. Когда необходимо, интеграция с Муравьем, Знатоком и любым другим таким инструментом проста. Между тем я могу использовать эти инструменты для ядра любого, основываются на любой платформе с любым исходным языком. Больше никаких контрольно-пропускных пунктов, никакая более сумасшедшая сложность, никакие более предположительно полезные "декларативные" сценарии, больше никакого черного ящика f @*#ing "волшебство".

Если Вы не можете переключиться на Python, то попробуйте Муравья + Ivy (по apache.org). Это дает Вам прохладный репозиторий Знатока без большей части зла Знатока. Именно это я делаю также, в случае необходимости и подходящий.

С наилучшими пожеланиями.

7
ответ дан 3 December 2019 в 03:05
поделиться

Палка с Муравьем, так как Вы создаете Java. Я смешал Ant/SCons для некоторой работы JNI, но в целом я остался бы с Муравьем тем более, что у Вас есть существующая установка сборки у Муравья. Портирование на Знатока будет похоже на пихание квадратного штепселя через стену без дыр.

Охватите свою пользовательскую логику Java для любого и рассмотрите пишущие надлежащие задачи Ant вместо того, чтобы выполнить внешний код Java. Я решил некоторые очень сложные части нашего процесса сборки путем простого расширения Муравья, чтобы сделать точно, в чем я нуждался, напр. руководящие ресурсы значка для большого gui проекта или введенной информации о подверсии непосредственно информационные декларации банки (спасибо SVNKit)

1
ответ дан 3 December 2019 в 03:05
поделиться

Maven - действительно хороший выбор для создания больших сборок ... в большинстве случаев, когда это не работает, очень просто.Люди неправильно понимают концепции Maven.Если вы работаете с «maven way», вы получите модули меньшего размера, что даст вам лучшую архитектуру в вашем программном обеспечении. С другой стороны, такие вещи, как Hudson, помогут вам сократить время сборки с помощью Maven, потому что Hudson поддерживает сборку только измененных модулей, которые не поддерживаются никаким другим инструментом сборки. Проблема с Maven состоит в том, чтобы изучить и понять концепции Maven, например, структуру проекта (папки и т. Д.) Или только один артефакт и т. Д. Цикл сборки будет поддерживать вас в различных областях: компиляция, упаковка, развертывание и выпуск. который не поддерживается другими инструментами (только если вы реализуете его вручную ... Я написал много больших сценариев Ant, чтобы достичь этого) ... Другая проблема, такая как изменения с течением времени, вызвана игнорированием передовой практики и указанием булавки версии, которые используются.

0
ответ дан 3 December 2019 в 03:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: