Size: a a a

2020 March 25

RU

Roman Ushakov in pro.jvm
Кстати в идее раньше фича была
По хоткею Ctrl + Ctrl можно было мавену указать какой проект собирать при использовании модулей из project structure

Например mvn project clean install

В последних билдах идеи это не работает
источник

RU

Roman Ushakov in pro.jvm
Оч раньше спасало, если нужны были какие-то шаманства с мавеном
источник

T

Tagir in pro.jvm
Никогда не пользовался. Но ответ один
источник

T

Tagir in pro.jvm
источник

AZ

Aydos Zhantleu in pro.jvm
Парни, здарова! Подскажите с многопоточностью . Работаю с RabbitMq и Cassandra. В общем consumer принимает каждую секунду около 10тыс сообщений (отдельных сообщений(json)) и после нужно их сохранить в Касандру. Решил собирать все сообщения в синхзронизированную коллекцию и каждую секунду сохранять её и после обнулять + нужно сделать ACK в раббит. Но не знаю как сделать т.к опыта в многопоточности мало. Может у кого есть куски кода или подскажите паттерн для решения. Буду очень благодарен!
источник

DP

Denis Pavlyuchenko in pro.jvm
Aydos Zhantleu
Парни, здарова! Подскажите с многопоточностью . Работаю с RabbitMq и Cassandra. В общем consumer принимает каждую секунду около 10тыс сообщений (отдельных сообщений(json)) и после нужно их сохранить в Касандру. Решил собирать все сообщения в синхзронизированную коллекцию и каждую секунду сохранять её и после обнулять + нужно сделать ACK в раббит. Но не знаю как сделать т.к опыта в многопоточности мало. Может у кого есть куски кода или подскажите паттерн для решения. Буду очень благодарен!
кажется, что можно писать данные в BlockingQueue, и по таймеру делать из неё java.util.concurrent.BlockingQueue#drainTo(java.util.Collection<? super E>, int)
источник

AZ

Aydos Zhantleu in pro.jvm
Denis Pavlyuchenko
кажется, что можно писать данные в BlockingQueue, и по таймеру делать из неё java.util.concurrent.BlockingQueue#drainTo(java.util.Collection<? super E>, int)
Спасибо, гляну!
источник

AG

Alexey Genus in pro.jvm
Denis Pavlyuchenko
кажется, что можно писать данные в BlockingQueue, и по таймеру делать из неё java.util.concurrent.BlockingQueue#drainTo(java.util.Collection<? super E>, int)
Вот я тоже хотел это предложить. А что делать, если обработать не получится и придётся как-то отменять?
источник

DP

Denis Pavlyuchenko in pro.jvm
Alexey Genus
Вот я тоже хотел это предложить. А что делать, если обработать не получится и придётся как-то отменять?
записать обратно в кролик, как вариант. Типа, dead letter queue
источник

AG

Alexey Genus in pro.jvm
Вообще да, или собственно nack делать.
источник

СН

Сергей Нелюбин in pro.jvm
Всем привет!

Собираю проект с помощью gradle и maven

Итоговые артефакты отличаются скомпилированными классами.

В настройках выставлено и там и там source=1.8 и target=1.8
Но судя по javap содержимое отличается в ConstantPool

Вопрос: какой способ поможет понять причины расхождения?

Вывел с помощью ключа -X у maven инфу о параметрах компилятора, его ключи и т.д.
Как у gradle можно вывести подобную информацию?
источник

VP

Vladimir Petrakovich in pro.jvm
Сергей Нелюбин
Всем привет!

Собираю проект с помощью gradle и maven

Итоговые артефакты отличаются скомпилированными классами.

В настройках выставлено и там и там source=1.8 и target=1.8
Но судя по javap содержимое отличается в ConstantPool

Вопрос: какой способ поможет понять причины расхождения?

Вывел с помощью ключа -X у maven инфу о параметрах компилятора, его ключи и т.д.
Как у gradle можно вывести подобную информацию?
А в чём конкретно проявляются отличия?
gradle можно попробовать запустить с --debug
источник

СН

Сергей Нелюбин in pro.jvm
Vladimir Petrakovich
А в чём конкретно проявляются отличия?
gradle можно попробовать запустить с --debug
Проект собраный градлом работает корректно в рантайме, а мавеном - падает с исключением AbstractMethodException

В дампе классов с помощью javap (анализировал один из скомпилированных классов) в констант пуле класса собранного мавеном отсутсвует одна из констант
источник

СН

Сергей Нелюбин in pro.jvm
В других классах тоже думаю аналогичные отличия
источник

СН

Сергей Нелюбин in pro.jvm
компилирую одной и той же версией JDK
источник

VP

Vladimir Petrakovich in pro.jvm
Сергей Нелюбин
Проект собраный градлом работает корректно в рантайме, а мавеном - падает с исключением AbstractMethodException

В дампе классов с помощью javap (анализировал один из скомпилированных классов) в констант пуле класса собранного мавеном отсутсвует одна из констант
А вариант с разными зависимостями вы не рассматриваете? Или точно известно, что classpath одинаковый?
источник

СН

Сергей Нелюбин in pro.jvm
в мавене использую последнюю версию плагина компилятора
источник

СН

Сергей Нелюбин in pro.jvm
нет, в том то и дело, что на момент компиляции я точно не знаю о составе класспаса
источник

VP

Vladimir Petrakovich in pro.jvm
Сергей Нелюбин
нет, в том то и дело, что на момент компиляции я точно не знаю о составе класспаса
Я бы предположил, что мавен кладёт туда более старую версию зависимости, в которой нет этого абстрактного метода
источник

СН

Сергей Нелюбин in pro.jvm
Gradle 6.0
источник