Знаток или плющ для управления зависимостями от муравья?

Другой альтернативой метода curl-less выше является использование функций нативного потока :

  • stream_context_create() : Создает и возвращает контекст потока с любыми параметрами, указанными в настройках .
  • stream_get_contents() : Идентично file_get_contents() , за исключением того, что stream_get_contents() работает с ресурсом уже открытого потока и возвращает оставшееся содержимое в string, до maxlength байт и начиная с указанного смещения .

Функция POST с ними может быть примерно такой:

 [
      'header'  => [ // header array does not need '\r\n'
        'Content-type: application/x-www-form-urlencoded',
        'Content-Length: ' . strlen($query_content)
      ],
      'method'  => 'POST',
      'content' => $query_content
    ]
  ]));
  if ($fp === FALSE) {
    fclose($fp);
    return json_encode(['error' => 'Failed to get contents...']);
  }
  $result = stream_get_contents($fp); // no maxlength/offset
  fclose($fp);
  return $result;
}

36
задан Loki 25 November 2008 в 20:49
поделиться

7 ответов

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

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

41
ответ дан informatik01 10 October 2019 в 09:51
поделиться

Если Ваша долгосрочная цель состоит в том, чтобы мигрировать на использование Знатока для управления всем процессом сборки (который мог бы намереваться сделать для новых проектов нового строительства), то я сердечно рекомендую использовать Знатока файлы pom.xml для управления зависимостями от имени Муравья файлы build.xml. Конечный результат состоит в том, что и Ваши проекты нового строительства и Ваши проекты прежней версии тогда все используют тот же механизм для управления зависимостями. И оказывается, что Знаток действительно делает лучшее задание руководящих зависимостей для Муравья файлы build.xml, чем делает Ivy.

До принятия Знатока как наш ведущий инструмент сборки, я сделал, чтобы разработчик попытался использовать Ivy в комбинации существующему Муравью файлы build.xml. Это было самым расстраивающим опытом, которые очень скоро приводят нас отклонять Ivy. Мы продолжили принятие Знатока. Наши проекты нового строительства начали создаваться с подходом Знатока запаса, и т.д.

Однако я вернулся к устаревшим проектам Муравья и начал использовать задачу Ant Знатока для определения определений пути к классу (и иногда других определений свойства Ant, втянутых из pom.xml). Это оказалось самым превосходным опытом. Существующие файлы build.xml Муравья должны только быть измененными немного для использования интеграции муравья Знатока для определения любого пути к классу, которые использовались в файле build.xml. Все зависимости, требуемые проектом, стали определенными в сопроводительном файле pom.xml, который обрабатывается Знатоком через задачу Ant, включенную в файлы build.xml.

объемы Знатока могут использоваться для точной настройки определений пути к классу, таким образом, что одно подходящее для компиляции или рабочий модульный тест, или для упаковки, и др., может быть установлено. Кроме того, в значительной степени на любой элемент чего-то определенного в файле pom.xml можно сослаться как свойство Ant в файле build.xml.

Действительно с задачей Ant для Знатока нет никакой жизнеспособной причины для Ivy даже существовать.

7
ответ дан informatik01 10 October 2019 в 09:51
поделиться

Я знаю, что одно преимущество Ivy состоит в том, что это может использовать различные виды репозиториев. Знаток обычно очень тверд в формате репозитория, который он будет использовать. Это - все, что я знаю.

2
ответ дан David M. Karr 10 October 2019 в 09:51
поделиться

Муравей + Плющ == Палаточный лагерь, где люди пользуются удобствами по мере необходимости.
Maven == Курорт, где вы полагаетесь на кого-то другого в предоставлении услуг.

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

Ant + Ivy займет больше времени для запуска проекта, но если команда имеет опыт сборки / интеграции, они могут адаптировать систему сборки к своему способу разработки и выпуска кода.

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

Удивительно, однако, что и Ant, и Maven выбирают XML в качестве языка для выражения рецептов сборки. Сообщество Java застряло на этом XML ...

40
ответ дан 27 November 2019 в 05:17
поделиться
[11344669-

Я думаю, что этот блог пост охватывает именно то, что ищет OP:

, почему вы должны использовать задачи муравья Maven вместо Maven или Ivy

7
ответ дан 27 November 2019 в 05:17
поделиться

Я только что потратил 2 дня на чтение документации по Ivy и должен сказать: используйте MAVEN, если у вас есть хоть какой-то выбор. Ivy - это полный и абсолютный мусор, насколько я могу судить. Я только что потратил 2 дня впустую, пытаясь включить его в свою сборку, и теперь сокращаю свои потери. Почему?

  • Ivy - это халтурная попытка управления зависимостями
  • Документация по Ivy - это полная шутка
  • Примеры и учебник по Ivy бесполезны

Как только я ввел "конфигурации" (читай - профили maven), Ivy начал сходить с ума, загружая всякий хлам, который мне не нужен, а затем выходил из строя. Документация по Ivy - это полная шутка. По сравнению с этим документация Maven читается как мечта. Если вам нужен пример того, насколько непроницаема и плохо написана документация Ivy, взгляните на справочную страницу по конфигурациям. Это неотъемлемая часть любой сборки, но в Ivy они кажутся плохо продуманным последним словом.

1
ответ дан 27 November 2019 в 05:17
поделиться

Ivy + Ant гораздо более гибок. Ivy управляет зависимостями, и точка, и делает это очень хорошо, лучше, чем Maven. А с Ant вы можете собрать практически любую систему сборки, какую захотите.

Maven пытается контролировать все - «жизненный цикл» (компиляция, тестирование, пакет и т. Д.), Где файлы должны находиться, и так далее. Удачи, настраивая плагины и тому подобное, если вам не нравится "путь Maven".

Maven - это ответ на вопрос, который никто не задавал. Написать сценарий Ant несложно, и Ivy дает вам лучшее управление зависимостями, чем Maven. Меня смущают некоторые из предыдущих комментариев, в которых говорилось, что Айви не удалось заставить работать. Ivy немного проще в настройке, чем Maven.

Spring Framework использует Ivy в процессе сборки. Я думаю, это можно рассматривать как вотум доверия для Айви.

8
ответ дан 27 November 2019 в 05:17
поделиться
Другие вопросы по тегам:

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