Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
27.08.2018, 18:19
|
|||
---|---|---|---|
|
|||
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
У нас есть 2 проекта в репозитории: В первом лежат наши REST контроллеры. Во втором лежат интерфейсы написанные на thrift Я скачал этот thrift. Понял, что можно сгенерить java код если вызвать вот такую команду в консоли для .thrift файла: Код: powershell 1.
Эта штука сгенерирует java сущности(классы и интерфейсы) и положит их в папку gen-java Насколько я понимаю в другом проекте мы должны как-то сослаться на эти интерфейсы(чтобы написать в коде Код: java 1.
) В идеале я вижу процесс следующим образом: Я обновляю сорцы из репозитория, исполняю mvn clean package и мавен по .thrift файлам генерирует java код. Если интерфейс поменялся, то я вижу ошибки компиляции. Подскажите как это всё организовать, пожалуйста. Я видел, что можно не .exe качать для thrift, а использовать зависимость в мавене, потом ещё зачем-то плагин полдключать. У меня как-то не получилось - возможно из-за того, что .thrift файлы в другом проекте лежат. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2018, 18:44
|
|||
---|---|---|---|
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
questioner, Сабж вроде для RPC а не для rest. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2018, 18:58
|
|||
---|---|---|---|
|
|||
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
Petro123questioner, Сабж вроде для RPC а не для rest. А REST и RPC это противоречие? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2018, 19:01
|
|||
---|---|---|---|
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
questionerPetro123questioner, Сабж вроде для RPC а не для rest. А REST и RPC это противоречие?да ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2018, 19:07
|
|||
---|---|---|---|
|
|||
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
Petro123questionerпропущено... А REST и RPC это противоречие?да И в чем? В общем-то, RPC = Remote Procedure Call чем дергание HTTP REST не Call а сервлет обрабатывающий HTTP запрос не Procedure лично мне, не ясно ))) по повоту Remote думаю вообще не однозначностей быть не может Т.ч. HTTP REST вполне себе частный случай RPC IMHO & AFAIK p.s. То, что кто-то забивает микроскопом гвозди, в общем-то нормально ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2018, 19:10
|
|||
---|---|---|---|
|
|||
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
Petro123questionerпропущено... А REST и RPC это противоречие?да Пусть слова REST там не будет. Заменим это на класс, обрабатывающий http запросы . ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2018, 19:20
|
|||
---|---|---|---|
|
|||
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
Leonid KudryavtsevИ в чем? В общем-то, RPC = Remote Procedure Call чем дергание HTTP REST не Call а сервлет обрабатывающий HTTP запрос не Procedure лично мне, не ясно ))) по повоту Remote думаю вообще не однозначностей быть не может Т.ч. HTTP REST вполне себе частный случай RPC IMHO & AFAIK RPC - это методы и аргументы, а REST - это вполне конкретные операции (GET, PUT, PATCH, POST, DELETE) над коллекциями и объектами. По теме топика: в maven в фазе generate-sources должен запускаться генератор кода, конец истории. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2018, 19:26
|
|||
---|---|---|---|
|
|||
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
Андрей ПанфиловLeonid KudryavtsevИ в чем? В общем-то, RPC = Remote Procedure Call чем дергание HTTP REST не Call а сервлет обрабатывающий HTTP запрос не Procedure лично мне, не ясно ))) по повоту Remote думаю вообще не однозначностей быть не может Т.ч. HTTP REST вполне себе частный случай RPC IMHO & AFAIK RPC - это методы и аргументы, а REST - это вполне конкретные операции (GET, PUT, PATCH, POST, DELETE) над коллекциями и объектами. По теме топика: в maven в фазе generate-sources должен запускаться генератор кода, конец истории. Андрей, в фазе какого проекта? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2018, 19:51
|
|||
---|---|---|---|
|
|||
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2018, 20:14
|
|||
---|---|---|---|
|
|||
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
Андрей Панфиловquestioner, вот пример: https://github.com/csaltos/hello-finagle-maven У них в помнике проекта с шаблонами генерация исходников. У меня это вообще не мавен проект https://github.com/csaltos/hello-finagle-maven/blob/master/hello-interface/pom.xml P.S. ещё там какой-то ненормалный thrift - от твиттера. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2018, 20:22
|
|||
---|---|---|---|
|
|||
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
Ещё это интересует https://stackoverflow.com/questions/52044010/how-to-use-thrift-generator-as-maven-dependency ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2018, 20:45
|
|||
---|---|---|---|
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
Андрей Панфилов, Мы так договоримся, что и SOAP это rest. То же ведь, сериализация и дергаем методы. Юз кейсы от ТС надо. Сабж он для толстого клиента. Или два бэк сервера между собой. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2018, 21:35
|
|||
---|---|---|---|
|
|||
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
Petro123Андрей Панфилов, Мы так договоримся, что и SOAP это rest.Это вы чет не по адресу, SOAP - это RPC ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2018, 21:47
|
|||
---|---|---|---|
|
|||
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
questionerУ них в помнике проекта с шаблонами генерация исходников. У меня это вообще не мавен проект https://github.com/csaltos/hello-finagle-maven/blob/master/hello-interface/pom.xml P.S. ещё там какой-то ненормалный thrift - от твиттера.Кладете туда pom.xml и он превращается в проект maven, если не нравится так, то наверняка можно через exec-maven-plugin сделать ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2018, 22:29
|
|||
---|---|---|---|
|
|||
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
Андрей ПанфиловquestionerУ них в помнике проекта с шаблонами генерация исходников. У меня это вообще не мавен проект https://github.com/csaltos/hello-finagle-maven/blob/master/hello-interface/pom.xml P.S. ещё там какой-то ненормалный thrift - от твиттера.Кладете туда pom.xml и он превращается в проект maven, если не нравится так, то наверняка можно через exec-maven-plugin сделать Получится, что имею 2 проекта. в одном контроллеры, а в другом генерированный код. Проекты никак не связаны. Как в проекте с контроллерами имплементировать интерфейсы из генерированного кода? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2018, 23:04
|
|||
---|---|---|---|
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
questioner, блаженный что-ли? Скомпилируй сгенеренные исходники и собери в jar. Потом используй его как зависимость во втором проекте. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.08.2018, 23:41
|
|||
---|---|---|---|
|
|||
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
fixxerquestioner, блаженный что-ли? Скомпилируй сгенеренные исходники и собери в jar. Потом используй его как зависимость во втором проекте. А потом кто-то меняет в репозитории thrift и что будет? Как это автоматизировано сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.08.2018, 00:12
|
|||
---|---|---|---|
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
questionerА потом кто-то меняет в репозитории thrift и что будет? Как это автоматизировано сделать? Ну, условно говоря, каждый раз при изменении исходников трифта перегенерить код и пересобрать либу. Хочешь руками, но лучше, как уже писали, используй любую систему сборки, напимер maven. Потом используй CI, например Jenkins. Если оба модуля разрабатываются в одной команде и жизненный цикл модулей одинаков, лучше положить в один репозиторий с мультимодульным проектом. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.08.2018, 11:39
|
|||
---|---|---|---|
|
|||
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
fixxerquestionerА потом кто-то меняет в репозитории thrift и что будет? Как это автоматизировано сделать? Ну, условно говоря, каждый раз при изменении исходников трифта перегенерить код и пересобрать либу. Хочешь руками, но лучше, как уже писали, используй любую систему сборки, напимер maven. Потом используй CI, например Jenkins. Если оба модуля разрабатываются в одной команде и жизненный цикл модулей одинаков, лучше положить в один репозиторий с мультимодульным проектом. Команды разные, репозитории разные ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.08.2018, 11:42
|
|||
---|---|---|---|
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
questionerКоманды разные, репозитории разные Rest согласовывают руками. Автоматом есть soap. Но там при генерации свои заморочки. Если на той стороне поменяли, то прокси класс на этой стороне станет другим и код перестанет компилироваться. Откуда задача возникла и какая она? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.08.2018, 11:43
|
|||
---|---|---|---|
|
|||
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
Решили сделать проект с трифтом мавен проектом, который будет генерить java код, паковать в jar и выкклаывать в Nexus. Теперь непонятно как уйти от Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
строки Код: java 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.08.2018, 12:07
|
|||
---|---|---|---|
|
|||
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
questioner, кладете бинарники в проект, если нужно еще в разных ОС собирать, то подключаете os-maven-plugin, названия бинарников делать в соответствии с os-maven-plugin, в плагине использовать ${os.detected.name}. Альтернатива: запаковать бинарники в jar через maven-dependency-plugin выкачивать jar как зависимость и распаковывать в build ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.08.2018, 14:05
|
|||
---|---|---|---|
|
|||
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
Андрей Панфиловquestioner, кладете бинарники в проект, если нужно еще в разных ОС собирать, то подключаете os-maven-plugin, названия бинарников делать в соответствии с os-maven-plugin, в плагине использовать ${os.detected.name}. Альтернатива: запаковать бинарники в jar через maven-dependency-plugin выкачивать jar как зависимость и распаковывать в build Положить бинарники трифта для каждой ОС в гит репозиторий? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.08.2018, 15:46
|
|||
---|---|---|---|
|
|||
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
questionerПоложить бинарники трифта для каждой ОС в гит репозиторий?а что вас смущает? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.08.2018, 17:13
|
|||
---|---|---|---|
|
|||
Как организовать всё в проекте, когда контракты зависят от thrift generated кода. |
|||
#18+
Андрей ПанфиловquestionerПоложить бинарники трифта для каждой ОС в гит репозиторий?а что вас смущает? Всё новое вызывает недоверие) Возможно это и нормально. https://thrift.apache.org/download Вот ссылка для загрузки. Я вижу тут только exe и архив. Exe у меня под виндой работает и проект нормально собирается. А что делать под линуксом? В архиве какая-то непонятная мне структура. Это типо самому из этого надо сбилдить executable? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=59&mobile=1&tid=2121813]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
61ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 364ms |
total: | 539ms |
0 / 0 |