это доставляет мне банку, но в [it] не добавляются зависимости
это совершенно нормально. По умолчанию, когда Maven создает jar-файл, он не добавляет в него никаких зависимостей, а только .class и ресурсы вашего текущего проекта.
Когда вы запускаете вашу программу, вы хотите, чтобы она нашла ваши зависимости, в противном случае вы столкнетесь с ClassNotFoundException. Поэтому вы должны сконфигурировать ваш classpath для ссылки на зависимости.
1 - если вы хотите запустить свою программу с локального компьютера с помощью Maven, используйте плагин exec Maven с целью <java>
, определенной в вашей помпе, как описано здесь: https://www.mojohaus.org/exec-maven-plugin/usage.html#Java_goal
В качестве альтернативы вы можете запустить его из панели запуска в вашей IDE. IDE создаст для вас classpath, а classpath будет содержать ваши зависимости.
2 - если вы хотите запустить из командной строки на любом компьютере, вы должны скопировать все ваши зависимости в один каталог (используя плагин зависимостей Maven mvn dependency:copy
) и запустить ваш jar следующим образом:
java -cp myProgram.jar:dependencyDirectory/* com.blabla.MainClass
(остерегайтесь использования ';' или ':' и '/' или '\' в зависимости от Linux / Windows)
3- в качестве альтернативы вы можете запустить jar с помощью java -jar myprogram.jar, но только если он содержит правильный файл MANIFEST.MF, в котором местоположение всех зависимостей жестко задано.
Мой совет - сначала нацелить решение 1 или 2.
PS: вы также можете создавать «толстые банки» или «убер-банки», содержащие ваши зависимости, но я бы посоветовал вам сначала не ориентироваться на это решение.