При переносе проекта в Play! Framework, единственной неразрешенной зависимостью является общий буфер протоколов JAR, совместно используемый несколькими серверами. В настоящее время проект состоит из нескольких модулей Maven; один из них - сгенерированный исходный код Java из файлов .proto. Всякий раз, когда мы собираем один из серверов, он генерирует jar прототипа модуля как зависимость, поэтому у нас всегда есть последние protobufs.
Я не уверен, как лучше всего это сделать в Play. Вот пара идей, которые у меня есть, каждая с ограничениями:
- Внесите банку, используя
play deps
из репозитория Maven. Это было бы самым простым в настройке, но потребовало бы установки нового jar и синхронизации депов для каждого прототипа, что было бы больно. Кроме того, двум людям было бы трудно одновременно работать над собственными изменениями прототипа.
- Создайте модуль, единственной задачей которого является использование ant и protoc для компиляции протосов и их экспорта в jar. Проблема с этим в том, что (я думаю) мы должны были бы вручную вызвать
play build-module
в модуле для любых изменений protobuf. * 1010 *
Мне бы очень хотелось, чтобы каждое приложение автоматически компилировало протос при каждой сборке (оно не должно быть с возможностью горячей замены, но это было бы бонусом). Есть ли способ сделать это?