LINUX.ORG.RU
ФорумTalks

Как можно жить и пользоваться java, используя maven?

 , , , ,


0

2

Сегодня узнал про maven. Был в ярости, что подход типа «сходить на сайт maven, найти нужный модуль, скопировать строки xml, вставить в зависимости своего проекта» - это ок. Вы серьёзно? Perl миллион лет назад научился в CPAN, который ставит пакет по команде cpan MODULE::NAME.

Почему такую простую и важную вещь в java нормально не реализовали? Или реализовали и про неё мало кто знает?

Я просто в ярости. Если мне потребуется подключить 10-20 модулей - это потребует немало времени. Что за дичь вообще? Это поэтому среднее время разработки софта на java измеряется годами?

★★★★

Последнее исправление: cetjs2 (всего исправлений: 1)

Почитай про creating maven archetype https://maven.apache.org/guides/mini/guide-creating-archetypes.html Если каждый день делаешь одностраничники на джаве, то подготовь шаблонный проект и сделай из него archetype.

Если работаешь с джавой без современной IDE, то ССЗБ и нечего тут жаловаться. В Eclipse же нужно нажать можно было нажать Ctr+Shift+T при активном pom.xml и в диалоговом окне ввести имя нужной тебе либы. Сейчас можно только по контекстному меню добраться до этого диалога через Maven -> Add Dependency.

Более того, можно просто открыть pom.xml и по Ctr+Space в разделе dependencies оно тебе выдаст меню, где увидишь пункт Insert dependency.

Еще рекомендую вот этот сайт https://javalibs.com/ для «творческого» поиска зависимостей.

И опять же не вижу сложности написать консольную утилиту, которая будет делать запись в pom.xml в раздел dependenices, если тебе так важно это делать через консоль.

foror ★★★★★
()
Ответ на: комментарий от ekzotech

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

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

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 2)
Ответ на: комментарий от stevejobs

У тебя очень ограниченное мировоззрение и нулевые технические способности. Не ходи в /dev-треды, пожалуйста.

E ★★★
()
Ответ на: комментарий от E

Да я чота ржу с контрол фриков «как бы чего не случилось, буду хранить файлики с зависимостями у себя в проекте руками». Вот вы жмётесь это сказать, а на самом деле это вашу жопку то и пригорает. А вдруг нестабильно? А вдруг сломается? А вдруг я не пойму как это работает? Аххахахаха. Могу по фотографии даже предположить операционную систему: Debian Stable или еще какое заскорузлое говно.

stevejobs ★★★★☆
()
Ответ на: комментарий от JN

Так ведь надо xml код вставлять же. Не? А чтоб его получить - надо зайти на сайт и там найти нужный модуль.

ekzotech ★★★★
() автор топика
Ответ на: комментарий от ekzotech

Но уж DBIx::Custom можно написать

звучит как абракадабра... ничем не лучше и не хуже чем например

<groupId>org.vasja</groupId> <artifactId>pupkin</artifactId>

к тому же если ты делаешь import org.vasja.pupkin.xxx то наверно ты в курсе как называется библиотека, и поиска не нужно...

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

WindowsXP ★★
()
Ответ на: комментарий от E

Не смертельно, но очень противно.

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

Впрочем, gradle может «работать» в off-line, что радует.

EXL ★★★★★
()
Ответ на: комментарий от WindowsXP

В случае с Perl есть строгие правила именования. Первая часть до :: означает «тип» модуля, часть после :: - имя модуля. :: используется в качестве разделителя вместо /.

Вопрос про то, что искать модуль для Perl проще и удобнее, чем для такой Ынтырпрайзной из себя java.

ekzotech ★★★★
() автор топика
Ответ на: комментарий от ekzotech

Custom

чудесное имя модуля... ничего по нему не смог найти ... Звучит реально неудобно, в джаве удобное, депенденси разруливаются сами, и не надо ничего инсталить из консоли, и у ж точно не надо что то ставить для всей системы чтобы что то перловое заработало... Кстати как у вас там дела с различными версиями модулей? не вижу версии в твоем примере

сходить на сайт maven, найти нужный модуль

не понял зачем ходить на сайт мавена... разберись в вопросе сначала

WindowsXP ★★
()
Последнее исправление: WindowsXP (всего исправлений: 2)
Ответ на: комментарий от ekzotech

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

Поэтому оценивать maven нужно не с точки зрения первоначального создания pom.xml, а с точки зрения дальнейшей работы с ним и поддержке. И тут я пока особых проблем не вижу. Ну и что, что в каждом проекте одни и те же модули? Тебе .gitignore не задалбывает для каждого проекта создавать?

mono ★★★★★
()
Последнее исправление: mono (всего исправлений: 1)
Ответ на: комментарий от E

Я немного не понимаю, ты на полном серьёзе сравниваешь gradle и makefile?

Вот у тебя проект, у которого «зависимостей на полгигабайта». Как ты разрулишь это с помощью «правильно собранного makefile»?

mono ★★★★★
()

в java

страдай

я вот вообще без интернетов должен этим пользоваться, приходится пакеты руками таскать

а вообще, для таких вроде бы градл был, или оно не об этом ?

Dred ★★★★★
()
Последнее исправление: Dred (всего исправлений: 1)
Ответ на: комментарий от mono

А в чём принципиальная разница? И то, и то - система сборки зависимых таргетов. Может, хоть ты мне расскажешь, какие у ant/maven/gradle киллер-фичи, которых нет в make?

E ★★★
()
Ответ на: комментарий от ekzotech

В ide есть еще строка поиска по maven репам, куда можно вбить название модуля и автоматически импортировать xml.

JN
()
Ответ на: комментарий от E

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

make – это не система сборки, это, немного утрируя, узкоспециальный скриптовый язык автоматизации вызова компиляторов.

Ничто не мешает собирать Android-проект с помощью Makefile, самостоятельно вызывая всю вереницу тулзовин, преобразующих код и ресурсы в нужную форму, но у тебя получится тот же самый gradle. Он даже будет быстрее работать (что может быть медленнее gradle? :) ), но поддерживать и интегрировать с внешними инструментами будет сложнее.

Если проводить параллели, то make из мира java – это ant, а gradle ближе к cmake.

mono ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.