Предложения по разметке большого проекта Client / Server и настройке Ivy - PullRequest
0 голосов
/ 07 сентября 2010

У меня достаточно большой (тысячи файлов) проект, который разделен между клиентом (100% C #) и сервером (95% Java с небольшим количеством C #).

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

Я не вижу каких-либо серьезных препятствий на пути использования Ivy для клиентской стороны, хотя Ivy написан на Java, большинство концепций являются общими. И я очень рад, что вызываю nant из ant для сборки C # (MSBuild).

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

  • Использование Ivy с многоязычным проектом
  • Использование Ivy для удаления многоязычных зависимостей
  • Использование Ivy для многоязычных публикаций под одной версией

И любые примеры будут наиболее полезны.

1 Ответ

2 голосов
/ 08 сентября 2010

Ivy как универсальный менеджер зависимостей

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

Ранее я приводил пример создания репозитория ivy с использованием ivy:

хорошее руководство по ivy для локального репозитория?

А вот примерпубликации zip-файла в Nexus

Можно ли поместить бинарные файлы в хранилище nexus?

Клиент и сервер

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

Ничто не мешает вам создать родительский модулькоторый зависит как от клиентского, так и от серверного модулей.

Репозитории

Ivy отлично подходит для управления небольшими репозиториями, однако я рекомендую рассмотреть полноценный менеджер репозиториев, такой как Nexus , Артефактория или Архив .Это позволяет локально использовать прокси-серверы для jar-файлов, доступных из Интернета (что повышает производительность и надежность), а также обеспечивает интерфейсы для загрузки двоичных файлов в хранилище.

В этом заключении не очень хорошо известно, что репозитории Maven могуттакже храните артефакты любого типа.POM-модули Maven содержат необязательный тег «package», который по умолчанию равен «jar», но может иметь любое расширение файла.

Так что используйте лучшее из обоих миров!: -)

...