powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Как пройти в библиотеку?
25 сообщений из 52, страница 2 из 3
Как пройти в библиотеку?
    #39988280
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
забыл ник
пропущено...

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

Нажми еще раз кнопку Run, может на этот раз получится правильный ответ
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988281
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем участникам! Не все, к сожалению, поняли суть просьбы, но некоторые поняли, им особое спасибо.

"Библиотека" - это, пожалуй, слишком громкое слово, привычная ассоциация c пакетом (mvn install), наверное, сбивает с толку.
"Общие исходные файлы для разных проектов" - вот как точнее назвать то, что я хочу получить.

Пакеты, библиотеки, репозитории - это мощная концепция, но она предполагает некую завершенность. Библиотека - это нечто отлаженное, собранное, однозначно идентифицируемое и лежащее в строго определенном месте. Пользуйся на здоровье, но руками не не трогай!

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

Вот уважаемый Zzz79 вроде бы знает как это сделать:
Zzz79

вынести те классы,которые ты хочешь в отдельную либу и потом добавить этот модуль в артифакты проекта 1,проекта 2 и любого другого
вынести в отдельную либу - это значит собрать все это добро в джарник
при этом ты сможешь рефакторить файлы и текущего проекта и подключенного,надо только прокинуть ауты
при этом у тебя будет сразу несколько корневых папок в проекте
и ты без проблем сможешь их изменять и эти изменения будут подхватыватья в реальном времени
ну тоесть это вполне реально ,так как я работал на таком проекте - где у нас было по 5 -10 модулей подключенных и все редактировалось без проблем

Дорогой Zzz79, а можно поподробнее, как это хозяйство настроить, где "прокинуть ауты", что и где прописать, чтобы изменения подхватывались в реальном времени? Нельзя ли глянуть на структуру аналогичного проекта?

Я попробовал, но получилось хреновенько. Сделал 2 проекта, каждый из 2-х модулей, один модуль общий для обоих проектов. Модули в смысле IDEA ("Project structure..."), а не maven, maven модули не позволили мне указать на "внешние" пути относительно проекта. Компилятор и среда пути к файлам модуля видят (после ручной настройки), в принципе можно и править, и собирать. Но настройки "библиотечного" модуля постоянно слетают при закрытии/открытии проекта, при каких-то еще событиях. Так жить нельзя.

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

Буду благодарен за образцы.
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988284
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky,
В java это называется jar файл.
Ни одного не подключал к проекту?
Подходит?
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988285
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник,

В ПТ.
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988297
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp

В java это называется jar файл.
Ни одного не подключал к проекту?
Подходит?

Jar файл, в моем нынешнем понимании, - это архив с откомпилированными бинарными файлами *.class, то есть собственно пакет (библиотека). В проекте, ясен пень, таких до сотни и больше, сторонних производителей. Могу и свой сделать. Но библиотеки jar с бинарными файлами как раз и создают проблему - не ясно, мне не ясно, как одновременно, в течение одной сборки проекта, компилировать и собственные файлы проекта, и исходные файлы библиотеки.

Или существуют мне пока неведомые управляемые jar-файлы с исходниками? Научите, тогда, пожалуйста, как с ними обходиться.
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988303
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky,
Давай по шагам.
Jar файл это dll в дельфи. Ты оттуда?
Так и тут. Как в дельфи.
В IDE открыто два проекта и один проект это jar файл либа utils.jar.
Дальше что непонятно?
Или ты в notepad.exe пишешь?
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988310
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky

Jar файл, в моем нынешнем понимании, - это архив с откомпилированными бинарными файлами *.class, то есть собственно пакет (библиотека). В проекте, ясен пень, таких до сотни и больше, сторонних производителей. Могу и свой сделать. Но библиотеки jar с бинарными файлами как раз и создают проблему - не ясно, мне не ясно, как одновременно, в течение одной сборки проекта, компилировать и собственные файлы проекта, и исходные файлы библиотеки.

Или существуют мне пока неведомые управляемые jar-файлы с исходниками? Научите, тогда, пожалуйста, как с ними обходиться.

Есть два подхода.

1) Можно собрать толстый jar-файл куда включить все classfiles из исходников и из библиотек.
maven-shade-plugin этим занимается. На выходе мы получаем автономное приложение у которого все зависимости есть.

2) И второй способ - добавить в MANIFEST.MF в CLASSPATH относительные пути на все твои зависимости и публиковать
их при билде. Как публиковать - тоже отдельная тема. Тут можешь хоть свои bash скрипты делать. Хоть искать коробочные
решения. Этот способ хорош гибкостью. Можно легко обновить какие-то зависимости или подкинуть там 2-3 новых
JDBC-драйвера.

Оба способа хороши. И я использую оба. По ситуации.

Есть еще и учебно-отладочный вариант когда jar вообще не собирается. Это тоже работает. В коротких тестах
и учебниках по программированию на java.
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988317
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Не понял твои варианты.
Есть App1, App2, Utils.jar (utils class)
Понятно что заказчику нужно jar тоже поставлять. Как dll.
Какие варианты?
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988321
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp

В IDE открыто два проекта и один проект это jar файл либа utils.jar.

Можно и так. Смотрим дальше. Итак, открыто два проекта, первый - обертка, второй - библиотека. Из основного проекта идет вызов к библиотечному классу. Появилась нужда перейти к вызываемому методу и что-то в нем поправить. Просто нажать мышкой не получится, придется переключить окно на второй проект, там найти файл и метод. Дальше собрать библиотечный проект, переключиться обратно на основной, собрать основной. И все это вместо одного нажатия горячей клавиши. Как-то не айс. Но можно, спору нет.

Если вам нравится аналогия с Delphi, то в этой аналогии нет нужды собирать отдельную dll, а нужно воткнуть все необходимое в exe, за одну, естественно, сборку. Когда понадобится dll, будем делать dll, но не ранее того.
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988324
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
Не понял твои варианты.
Есть App1, App2, Utils.jar (utils class)
Понятно что заказчику нужно jar тоже поставлять. Как dll.
Какие варианты?

Не знаю. Мой комментарий относится к тому что квотировано. Я про заказчика там ничего не говорю.
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988339
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
ОК.
Вариант1 - толстое приложение с utils.jar внутри мне лично не нра.
Ждем автора.
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988343
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

maven-shade-plugin

Ага, спасибо, смотрю, наверное, это поможет. Но там много наворотов, надо разбираться.

Елки-палки, что ж такие сложности для простой задачи - добавить пути поиска исходных файлов? При том что сам компилятор javac такую возможность предусматривает в sourcepath, а надстройки - maven, IDEA и иже с ними, рубят на подлете, и приходится так извращаться.
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988344
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я иногда собираю для себя консольные утилитки. Состоящие из 1 bash скрипта и 1 jar файла.
И в этом случае такой "толстяк" удобен. Эти утилитки не имеют никакого смысла для форума sql.ru
Они - специфичны для моих проектов и для моих задач. И никто не поймет что они делают.
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988346
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
Вариант1 - толстое приложение с utils.jar внутри мне лично не нра.

Не понял. А разве любое приложение не собирается в единый jar, который содержит все-все нужные классы, кроме разве что тех, которые входят в поставку целевой JRE?
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988349
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, Zzz79!

Zzz79

добавляешь его и далее ты увидишь в структуре своего проекта два корневых каталога-основной проект и редактируемая библиотека

Я так сделал руками ("Project structure..."), но получилось плохо, написал выше. Попробую сейчас через gradle, как вы рекомендуете. Еще одна оболочка-плагин, чем дальше в лес, тем толще партизаны...

Zzz79

скажу только одно раз у тебя возникла такая проблема - ты что то делаешь не так- так как этот подход жутчайшее легаси и никто так давно уже не работает

Я уж догадываюсь. Но не возьму никак в толк, что тут такого неправильного? А если "правильно", то получается неудобно. Это тоже неправильно.
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988350
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky
PetroNotC Sharp
mayton,
Вариант1 - толстое приложение с utils.jar внутри мне лично не нра.

Не понял. А разве любое приложение не собирается в единый jar, который содержит все-все нужные классы, кроме разве что тех, которые входят в поставку целевой JRE?

Поскольку процесс сборки определяется IDE/сборщиком то мы можем только предполагать что там.

Вот как вы включаете JDBC-драйверы в ваш проект?
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988354
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky
PetroNotC Sharp
mayton,
Вариант1 - толстое приложение с utils.jar внутри мне лично не нра.

Не понял. А разве любое приложение не собирается в единый jar, который содержит все-все нужные классы, кроме разве что тех, которые входят в поставку целевой JRE?

Это файл *.war)))
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988355
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky,

авторЯ уж догадываюсь. Но не возьму никак в толк, что тут такого неправильного? А если "правильно", то получается неудобно. Это тоже неправильно.
нет в java одного решения
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988356
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть еще морально устаревшая технология OSGI. Которая тоже является стандартом на публикацию java-бинарников.

И некоторые крупно-конторы все еще ее поддерживают.
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988357
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Вот как вы включаете JDBC-драйверы в ваш проект?

Прописываю зависимость в pom.xml. Иначе пока и не умею. Насколько я вижу, в целевом jar в /BOOT-INF/lib после сборки находятся все необходимые библиотеки, в том числе и JDBC-драйвер.
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988361
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky
mayton

Вот как вы включаете JDBC-драйверы в ваш проект?

Прописываю зависимость в pom.xml. Иначе пока и не умею. Насколько я вижу, в целевом jar в /BOOT-INF/lib после сборки находятся все необходимые библиотеки, в том числе и JDBC-драйвер.
значит неверно.
В IDE без мавен стоит галка, включать ли дрова к бд в выходной файл war
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988362
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky
mayton

Вот как вы включаете JDBC-драйверы в ваш проект?

Прописываю зависимость в pom.xml. Иначе пока и не умею. Насколько я вижу, в целевом jar в /BOOT-INF/lib после сборки находятся все необходимые библиотеки, в том числе и JDBC-драйвер.

Их можно включать с разным scope.

Код: java
1.
<scope>compile|provided</scope>



В случае с compiled они - физически включаются в бинарник. Связывание в фазе компилляции.
Во втором варианте рантайм или тот сервер приложений. Или среда обещает (!) что нужный
jdbc драйвер будет предоставлен в путях CLASSPATH.

Эти оба способа вобщем правильные. Но второй считается более гибким т.к. JDBC драйвер
следует "инверсии управления" и если ты правильно писал код то ты опирался только на
неймспейс java.sql.* и не включал явно никаких конкретных драйверов. Это позволяет
в будущем менять целевую DBMS или просто делать апгрейд драйвера если там какая-то
ошибка была в старой версии.

Какие выводы можно из этого всего сделать?
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988367
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79, так gradle - это получается альтернатива maven. Может, это и хорошая альтернатива, но мне она не подходит, не некоторым причинам я должен остаться на maven. Но за совет спасибо!
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988368
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Код: java
1.
<scope>compile|provided</scope>



О как, классно! Про выводы не знаю, но информация крайне для меня ценная. По умолчанию, получается, работает compile .
...
Рейтинг: 0 / 0
Как пройти в библиотеку?
    #39988371
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79,
>но вот модульная архитектура = реально прошлый век,
Да. Нет смысла именно тут об этом.
Он верно схватил 3 типа сборки. Это главное.
...
Рейтинг: 0 / 0
25 сообщений из 52, страница 2 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Как пройти в библиотеку?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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