Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Сборка jar-файла. Проблема с добавленными сторонними библиотеками / 22 сообщений из 22, страница 1 из 1
05.06.2020, 11:29
    #39966436
DimkaFriend
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
Добрый день.
Решил овладеть утилитами сборки проектов из консоли операционной системы.
Сам являюсь пользователем OS Ubuntu.
Собрал свой проект полностью из консоли OS.
Суть проекта:
консольное приложение на OpenJDK 14 делает следующее:
Мониторит папку с указанным интервалом времени и собирает пути файлов, после этого отдает результат задаче на конвертацию файлов с PDF в JPG.
Задача по конвертации файлов вычисляет региональные файлы по сумме SHA, после сего отфильтрованные файлы конвертируются в JPG по станично.
Структура проекта:
есть три скрипта по этапной сборке jar-файла:
compilation.sh - компиляция классов
build_art_jar.sh - сборка скомпилированных классов в jar-файл с внешними библиотеками
running.sh - вспомогательный скрипт для проверки запуска
папки:
bin - хранит откомпилированные классы и внешние подключаемые библиотеки
lib - хранит подключаемые библиотеки
src - исходный код

Но наткнулся на образовавшуюся проблему.

Суть проблемы:
В конечном собранном jar-файле есть включенные сторонние под лицензией Apache 2.0.
jar-файл содержит манифест с указанием главного класса и путей к добавленным в jar-файл библиотекам.
Когда я пытаюсь запустить jar-файл то запуск происходит, но не происходит не каких действий со стороны программы.
но стоит мне рядом с запускаемым jar-файлом положить папку с внешними библиотеками, которые участвуют в работе программы, начинается процесс сканирования и конвертации файлов.

Ссылка на проект: https://drive.google.com/file/d/1Fsmt5_KE_2J6TnJw-k-sLQjJ3WJ8qO0o/view?usp=sharing

Есть подозрения что я что то не так сделал при формирования файла manifest.mf

P.S. Пользоваться сборщиками проектов умею и можно не предлагать использовать их.
Я хочу разобраться как все именно работает "под капотом".
...
Рейтинг: 0 / 0
05.06.2020, 12:04
    #39966455
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
Мысль.

1) Мониторить папку - это наверное не очень удобно с точки зрения контроля. Как понять где твой файл
если два процесса независимо друг от друга бросили по pdf.

Может лучше - какой-то rest-endpoint? Как функция.

2) На гугл-драйве - неудобно работать онлайн. Не programmer's way. Некоторые читатели форума сидят с мобильных устройств.
Чтоб глянуть сорцы - надо кучу телодвижений сделать.

Не думал опубликовать на bitbucker или github?
...
Рейтинг: 0 / 0
05.06.2020, 12:12
    #39966460
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
DimkaFriend
хочу разобраться как все именно работает "под капотом".

Там сборщики пакетов всё складывают внутрь jar архива. Можешь сам попробовать руками туда засунуть в lib/ нужные либы, jar - это zip архив.
...
Рейтинг: 0 / 0
05.06.2020, 12:18
    #39966462
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
DimkaFriend
Пользоваться сборщиками проектов умею и можно не предлагать использовать их.


Как Мастер Костылей одобряю ваш велозавод.
...
Рейтинг: 0 / 0
05.06.2020, 12:23
    #39966466
Lelouch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
DimkaFriend
Добрый день.
Решил овладеть утилитами сборки проектов из консоли операционной системы.
Сам являюсь пользователем OS Ubuntu.
Собрал свой проект полностью из консоли OS.
Суть проекта:
консольное приложение на OpenJDK 14 делает следующее:
Мониторит папку с указанным интервалом времени и собирает пути файлов, после этого отдает результат задаче на конвертацию файлов с PDF в JPG.
Задача по конвертации файлов вычисляет региональные файлы по сумме SHA, после сего отфильтрованные файлы конвертируются в JPG по станично.
Структура проекта:
есть три скрипта по этапной сборке jar-файла:
compilation.sh - компиляция классов
build_art_jar.sh - сборка скомпилированных классов в jar-файл с внешними библиотеками
running.sh - вспомогательный скрипт для проверки запуска
папки:
bin - хранит откомпилированные классы и внешние подключаемые библиотеки
lib - хранит подключаемые библиотеки
src - исходный код

Но наткнулся на образовавшуюся проблему.

Суть проблемы:
В конечном собранном jar-файле есть включенные сторонние под лицензией Apache 2.0.
jar-файл содержит манифест с указанием главного класса и путей к добавленным в jar-файл библиотекам.
Когда я пытаюсь запустить jar-файл то запуск происходит, но не происходит не каких действий со стороны программы.
но стоит мне рядом с запускаемым jar-файлом положить папку с внешними библиотеками, которые участвуют в работе программы, начинается процесс сканирования и конвертации файлов.

Ссылка на проект: https://drive.google.com/file/d/1Fsmt5_KE_2J6TnJw-k-sLQjJ3WJ8qO0o/view?usp=sharing

Есть подозрения что я что то не так сделал при формирования файла manifest.mf

P.S. Пользоваться сборщиками проектов умею и можно не предлагать использовать их.
Я хочу разобраться как все именно работает "под капотом".


Вроде как поиск jar осуществляется относительно расположения манифеста. В данном случае он внутри jar в директории bin. То есть в вашем случае нужно использовать ../lib вместо lib
...
Рейтинг: 0 / 0
05.06.2020, 12:42
    #39966473
DimkaFriend
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
mayton,
1) такой подход был выбран с целью в дальнейшем научится работать со спорными ситуациям(не на каждом проекте будет все идеально)
2)Не имею привычки захламлять свой git профиль некачественным контентом. К тому же, качественный ответ на вопрос, который я поднял, с головы ответят единицы, так как почти все сидят на сборщиках проектом. А меня интересует качественный результативный ответ. Когда я где бы то небыло отвечаю, стараюсь подходить с практики, то есть загрузить и "пощупать" проблему ручками.
...
Рейтинг: 0 / 0
05.06.2020, 12:45
    #39966476
Lelouch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
DimkaFriend
mayton,
1) такой подход был выбран с целью в дальнейшем научится работать со спорными ситуациям(не на каждом проекте будет все идеально)
2)Не имею привычки захламлять свой git профиль некачественным контентом. К тому же, качественный ответ на вопрос, который я поднял, с головы ответят единицы, так как почти все сидят на сборщиках проектом. А меня интересует качественный результативный ответ. Когда я где бы то небыло отвечаю, стараюсь подходить с практики, то есть загрузить и "пощупать" проблему ручками.


Я бы сказал что ваш подход некорректен даже в случае "без сборщика". В большинстве случаев в bin лежат .sh и прочие скрипты запуска, а все jar - в lib/jars.
...
Рейтинг: 0 / 0
05.06.2020, 12:46
    #39966477
DimkaFriend
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
crutchmaster
DimkaFriend
хочу разобраться как все именно работает "под капотом".

Там сборщики пакетов всё складывают внутрь jar архива. Можешь сам попробовать руками туда засунуть в lib/ нужные либы, jar - это zip архив.


Я не скажу что ты не прав так как не знаю этого на верняка, но если ты откроешь, описанные мной, срипты то увидишь что все в них делается автоматом. За правильность ссылок на внешние библиотеки отвечает вложенный в jar-файл manifest.mf
...
Рейтинг: 0 / 0
05.06.2020, 12:51
    #39966482
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
DimkaFriend, по поводу некачественного контента.

Я точно также рассуждал лет 10 назад. Но версионный контроль идейно предполагает
бесконечную эволюцию кода. И качественного релиза там никогда не будет. Всегда
будет какой-то code-review энузиаст который в отчете напишет кучу гневных фраз к
"идеальному" твоему коду.

Поэтому можешь не надувать щёки а спокойно паблишить. Гитхаб завален миллиардами
файлов кода и никому ты по большему счету не нужен. И качать репу для резюме
или собеседований - дело безсмысленное. Никто в 80% случаев туда просто не смотрит.
И тем более почти никогда не смотрит в историю ревизий.

Это я говорю как тот кто проводил собесы и тоже также сквозь пальцы смотрел на джунские
репо.
...
Рейтинг: 0 / 0
05.06.2020, 12:53
    #39966483
DimkaFriend
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
Lelouch
DimkaFriend
Добрый день.
Решил овладеть утилитами сборки проектов из консоли операционной системы.
Сам являюсь пользователем OS Ubuntu.
Собрал свой проект полностью из консоли OS.
Суть проекта:
консольное приложение на OpenJDK 14 делает следующее:
Мониторит папку с указанным интервалом времени и собирает пути файлов, после этого отдает результат задаче на конвертацию файлов с PDF в JPG.
Задача по конвертации файлов вычисляет региональные файлы по сумме SHA, после сего отфильтрованные файлы конвертируются в JPG по станично.
Структура проекта:
есть три скрипта по этапной сборке jar-файла:
compilation.sh - компиляция классов
build_art_jar.sh - сборка скомпилированных классов в jar-файл с внешними библиотеками
running.sh - вспомогательный скрипт для проверки запуска
папки:
bin - хранит откомпилированные классы и внешние подключаемые библиотеки
lib - хранит подключаемые библиотеки
src - исходный код

Но наткнулся на образовавшуюся проблему.

Суть проблемы:
В конечном собранном jar-файле есть включенные сторонние под лицензией Apache 2.0.
jar-файл содержит манифест с указанием главного класса и путей к добавленным в jar-файл библиотекам.
Когда я пытаюсь запустить jar-файл то запуск происходит, но не происходит не каких действий со стороны программы.
но стоит мне рядом с запускаемым jar-файлом положить папку с внешними библиотеками, которые участвуют в работе программы, начинается процесс сканирования и конвертации файлов.

Ссылка на проект: https://drive.google.com/file/d/1Fsmt5_KE_2J6TnJw-k-sLQjJ3WJ8qO0o/view?usp=sharing

Есть подозрения что я что то не так сделал при формирования файла manifest.mf

P.S. Пользоваться сборщиками проектов умею и можно не предлагать использовать их.
Я хочу разобраться как все именно работает "под капотом".


Вроде как поиск jar осуществляется относительно расположения манифеста. В данном случае он внутри jar в директории bin. То есть в вашем случае нужно использовать ../lib вместо lib


Сейчас проверю и отпишусь о результате вам.
...
Рейтинг: 0 / 0
05.06.2020, 12:55
    #39966484
DimkaFriend
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
Lelouch
DimkaFriend
mayton,
1) такой подход был выбран с целью в дальнейшем научится работать со спорными ситуациям(не на каждом проекте будет все идеально)
2)Не имею привычки захламлять свой git профиль некачественным контентом. К тому же, качественный ответ на вопрос, который я поднял, с головы ответят единицы, так как почти все сидят на сборщиках проектом. А меня интересует качественный результативный ответ. Когда я где бы то небыло отвечаю, стараюсь подходить с практики, то есть загрузить и "пощупать" проблему ручками.


Я бы сказал что ваш подход некорректен даже в случае "без сборщика". В большинстве случаев в bin лежат .sh и прочие скрипты запуска, а все jar - в lib/jars.


Хороший комментарий, обязательно сейчас переделаю. спасибо.
...
Рейтинг: 0 / 0
05.06.2020, 12:56
    #39966485
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
DimkaFriend
mayton,
1) такой подход был выбран с целью в дальнейшем научится работать со спорными ситуациям(не на каждом проекте будет все идеально)

Ну... мне алгоритмически интересно как ты файлы различаешь? По дате? Или по UUID?

Подобный подход был в *телекоме лет 20 назад. Я тогда только начинал работать
и одно из решений по безопаснсости app сервера было в том что пошарили
SMB папку в интернете и дали возможность пользовалям черезе tomcat туда
чего-то кидать. А уже другой засекюреный app-сервер туда смотрел и забирал
контент. Ну тоесть там решалась проблема такий асинхронной интеракции.
Руководство очень боялось что трафик перегрузит app и так сделали.

А у тебя по какой причине - просто было неозвучено.
...
Рейтинг: 0 / 0
05.06.2020, 13:08
    #39966491
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
DimkaFriend
mayton,
1) такой подход был выбран с целью в дальнейшем научится работать со спорными ситуациям(не на каждом проекте будет все идеально)
2)Не имею привычки захламлять свой git профиль некачественным контентом. К тому же, качественный ответ на вопрос, который я поднял, с головы ответят единицы, так как почти все сидят на сборщиках проектом. А меня интересует качественный результативный ответ. Когда я где бы то небыло отвечаю, стараюсь подходить с практики, то есть загрузить и "пощупать" проблему ручками.

Да. Все сидят на сборщиках.
Так как java не любит велосипедов. Не успеешь стать программистом при данном подходе))
Ваш кэп.
...
Рейтинг: 0 / 0
05.06.2020, 13:08
    #39966492
DimkaFriend
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
mayton
DimkaFriend
mayton,
1) такой подход был выбран с целью в дальнейшем научится работать со спорными ситуациям(не на каждом проекте будет все идеально)

Ну... мне алгоритмически интересно как ты файлы различаешь? По дате? Или по UUID?

Подобный подход был в *телекоме лет 20 назад. Я тогда только начинал работать
и одно из решений по безопаснсости app сервера было в том что пошарили
SMB папку в интернете и дали возможность пользовалям черезе tomcat туда
чего-то кидать. А уже другой засекюреный app-сервер туда смотрел и забирал
контент. Ну тоесть там решалась проблема такий асинхронной интеракции.
Руководство очень боялось что трафик перегрузит app и так сделали.

А у тебя по какой причине - просто было неозвучено.


Дата не дает уникальность(несколько файлов прилетят(обновятся) в одно время), UUID - больше подходит когда ведется строгое журналирование операций с применением бд(у меня этого в проекте нет)

по этому я решил пойти самым простым путем для меня (на текущий момент)

Грубо говоря:
- есть папка(допустим на FTP)
- следовательно есть вероятность того что что один и тот же файл может обновляться

От сюда подход:
- у файла есть такая замечательная штука как контрольная сумма(в своем случае использую SHA-256, так как у него сейчас безопасность из всех на уровне)
- есть кэш приложения состоящий из таких контрольных сумм
- если файл обновился и содержимое у него поменялось то изменилась и контрольная сумма
- следовательно его надо заново конвертировать игнорируя перезапись уже конвертированных приложений
...
Рейтинг: 0 / 0
05.06.2020, 13:13
    #39966495
DimkaFriend
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
PetroNotC Sharp
DimkaFriend
mayton,
1) такой подход был выбран с целью в дальнейшем научится работать со спорными ситуациям(не на каждом проекте будет все идеально)
2)Не имею привычки захламлять свой git профиль некачественным контентом. К тому же, качественный ответ на вопрос, который я поднял, с головы ответят единицы, так как почти все сидят на сборщиках проектом. А меня интересует качественный результативный ответ. Когда я где бы то небыло отвечаю, стараюсь подходить с практики, то есть загрузить и "пощупать" проблему ручками.

Да. Все сидят на сборщиках.
Так как java не любит велосипедов. Не успеешь стать программистом при данном подходе))
Ваш кэп.

Повторю еще раз, моя цель разобраться для себя с "капотом"
...
Рейтинг: 0 / 0
05.06.2020, 15:27
    #39966540
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
DimkaFriend
P.S. Пользоваться сборщиками проектов умею и можно не предлагать использовать их.
Я хочу разобраться как все именно работает "под капотом".


Это?!
...
Рейтинг: 0 / 0
05.06.2020, 15:29
    #39966541
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
DimkaFriend

Дата не дает уникальность(несколько файлов прилетят(обновятся) в одно время), UUID - больше подходит когда ведется строгое журналирование операций с применением бд(у меня этого в проекте нет)


Все нормально она обеспечивает. Если рассмотреть границу 1-го сетевого интерфейса то IP-пакеты
пересекают ее строго последовательно. Да... они конечно параллелятся на уровне твоих испольняющих
тредов или асинков но существуюет момент времени когда мы ловим входящий пакет и присваиваем
ему точное время systemNanoTime(). Как это реализовать - отдельный вопрос но сетевые интеракции
здесь будут последовательны во времени. Как нарратив.

Нет. UUID - вообще не про это. UUID - это будерброд (обычно) из трех источников энтропии.
Случайное число. Текущее время с милисекундами. И некий идентификатор устойства (может
быть MAC адрес сетевушки. Хотя есть разные формулы генерации UUID и то что я перечислил
это просто удачный вариант формулы. Бывает что весь UUID - это псевдослучайное число
из крипто-генератора ГПСЧ.

К БД UUID не имеет отношения. БД возникли и строились долгие десятилетия не зная UUID.

Реально UUID полезен только в распредлённых системах где узлы кластера слабо связаны
между собой но необходимость в уникальности ключей есть. Обычно в JMS/MQ.
...
Рейтинг: 0 / 0
05.06.2020, 21:10
    #39966654
DimkaFriend
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
mad_nazgul
DimkaFriend
P.S. Пользоваться сборщиками проектов умею и можно не предлагать использовать их.
Я хочу разобраться как все именно работает "под капотом".


Это?!

Там все именно по сборщиком проектов. Так что не то что надо. Спасибо за участие.
...
Рейтинг: 0 / 0
05.06.2020, 21:14
    #39966655
DimkaFriend
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
Lelouch,

В общем я проверил по твоим комментариям и сильно запутался.
Единственное что я понял что не правильно выстроил этапы сборки относительно файловых путей и файлов.

Если не затруднит и найдешь время, можешь помочь примером приведя каталог к правильным зависимостям? А то чувствую что в голове каша полная и сам я эту кашу не раскручу.
...
Рейтинг: 0 / 0
06.06.2020, 13:13
    #39966724
Lelouch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
DimkaFriend
Lelouch,

Единственное что я понял что не правильно выстроил этапы сборки относительно файловых путей и файлов.


Манифест, который включается в jar содержит некорректные пути к файлам библиотек. Некорректными они становятся потому, что манифест фактически находится в jar в директории bin. ClassPath вычисляется относительно этого jar, а не относительно директории запуска. Так понятнее?
...
Рейтинг: 0 / 0
08.06.2020, 05:46
    #39966957
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
DimkaFriend,

Ну что, разобрался, куда складывать либы?
...
Рейтинг: 0 / 0
08.06.2020, 07:16
    #39966964
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сборка jar-файла. Проблема с добавленными сторонними библиотеками
DimkaFriend
mad_nazgul
пропущено...


Это?!

Там все именно по сборщиком проектов. Так что не то что надо. Спасибо за участие.


Может тогда посмотреть исходники сборщиков и плагинов к ним?
Там как бы все работает.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Сборка jar-файла. Проблема с добавленными сторонними библиотеками / 22 сообщений из 22, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]