Сборка системы для многоязычного проекта - PullRequest
3 голосов
/ 15 ноября 2011

Я готовлюсь начать проект в основном для экспериментов с языками, но и с намеком на полезность.Он будет состоять из серверного приложения, написанного на Erlang, и клиентских библиотек на нескольких языках.Изначально я хочу писать клиенты на Java, Ruby и Python.Фактическим протоколом для связи будет Thrift.

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

Это означает, что Jar для Java, RubyGem и tar-архив распределить / setuptools для Python.У Эрланга, наверное, тоже кое-что есть, но я еще не знаком с этим.Он также должен иметь возможность запускать Thrift-компилятор для создания различных заглушек Thrift на каждом языке.

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

Ответы [ 2 ]

0 голосов
/ 24 ноября 2011
"It will consist of a server-application, written in Erlang, 
and client-libraries in a number of languages. 
Initially I will want to write clients in Java, Ruby and Python. "

Maven хорош, если вы следуете его путем.Это на самом деле больше моего пути или высокого пути.Смотрите: http://community.jboss.org/wiki/MavenVsGradle Для многих стандартных Java-проектов это действительно очень хорошо.Но если вам нужно использовать другие вещи, это довольно быстро усложняется.

Из вашего описания это очень быстро усложняется.

Предлагаю посмотреть gant (groovy + ant) ​​и gradle.Вы можете вызывать другие скрипты из Gant и / или Gradle.JPython, JRuby будет твоим другом.У муравья много задач, которые будут очень полезны.

Я успешно реализовал сложный проект сборки Java / C ++ / C с использованием Gant.Groovy-скриптинг является мощным и простым в использовании.Gradle похож и в некоторых отношениях более мощный, чем Гант.

0 голосов
/ 15 ноября 2011

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

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

Это может не подходить системам сборки для каждого языка, чтобы навязать им maven. Так что, возможно, используйте специальные доступные инструменты сборки, оберните их в простой сценарий и выполните их, используя сервер непрерывной интеграции (например, bamboo, jenkings / hudson, teamcity, ...), чтобы они строили в определенном порядке (чтобы «подделать» зависимости). )

Я не знаю о кросс-языковой системе.

Gradle может быть более гибким, поскольку его подход более ориентирован на сценарии.

А есть http://eclipse.org/buckminster/ - просто для полноты (давно не смотрел)

привет

Werner

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