Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java tools & IDE's > IDEA + Maven - Не работает |
Автор: wowka19 4.8.2016, 16:49 |
Создал проект Maven через IDEA. Создал простой класс с main(). Обнаружил что в IDEA куча способов сборки - не понятно как они вообще связаны (просто build, Plugins, Lifecycle), доки только запутывают. Как рассово верно производить сборку? Тем не менее я испытал все возможные способы сборки, и у меня все же как-то получилось запустить свой HelloWorld в jar, но только через саму IDEA. При запуске "java helloworld.jar" - пишет Error: Could not find or load main class helloworld.jar. Открываю MANIFEST.MF - там не указан майн класс. Через IDEA добавить не получилось (дурацкая IDE). Вручную добавляю "Main-Class: org.home.HelloWorld" (мой класс лежит в org/home/HelloWorld.class и пакет тоже верно задан: package org.home;) - эффекта ноль! Все равно не работает! Что я делаю не так? |
Автор: LSD 5.8.2016, 13:35 |
Мавен-ом. На вкладке мавен, выделяешь goals clean+install щелкаешь правой кнопкой - create ... У тебя в run появится пункт который будет собирать проект мавеном. Все ![]() У тебя проект собирается мавеном, а ты вместо того чтобы его и конфигурировать, пытаешься через идею что-то делать. Тебе надо конфигурировать сам мавен. https://maven.apache.org/plugins/maven-jar-plugin/examples/manifest-customization.html. |
Автор: LSD 29.11.2016, 18:44 | ||
В Maven Projects в конкретном модуле в разделе Lifecycle есть все goal-ы. |
Автор: lazycat 29.11.2016, 19:01 | ||
Да, я эти goal-ы вижу и могу выполнить, однако проблема этим не решается (напомню, автор первого поста писал, что в архиве в файле манифеста не прописывается main класс). В принципе, дописать пару строк конфигурации в описание плагина несложно, в инете полно примеров, но проблема в том, что в pom.xml вообще нет раздела build (!!!). А если еще и раздел build руками дописывать, возникает резонный вопрос: а зачем мне тогда архетип и мавен вообще ![]() В общем, подозреваю я, что ломлюсь в открытые двери... Я бы списал проблему на то, что ахетип кривой, но это же классический архетип, его команда generate по умолчанию предлагает. Сгенерировал и сбилдил проект из командной строки, та же проблема - pom.xml без <build>, а архив без main класса. Одним словом, я в раздумьях ... |
Автор: LSD 29.11.2016, 20:47 | ||||||||
Ты вначале спрашивал совсем про другое:
Что касается main класса в манифесте, то смотри первую ссылку и https://maven.apache.org/shared/maven-archiver/index.html.
|
Автор: lazycat 6.12.2016, 20:39 |
Наверное просто сумбурно выразился. Главная проблема: в pom файле нет ни <build> ни <archive>. В принципе, проблем нет, можно повставлять их руками, но если использую архетип, ожидаю, что заготовка будет более или менее вменяемой. Поневоле приходит мысль, что делаю что-то не так. Прошу прощения, что вместо конкретного вопроса в рассуждения пустился. |
Автор: LSD 7.12.2016, 13:31 | ||
Архетип нужен чтобы сгенерировать минимальный проект, а дальше ты уже сам его должен допилить до нужного тебе состояния. Просто main класс в манифесте это вещь не первой необходимости. Например те же ANT и Maven, не содержат main класс в манифесте, а запускаются shell скриптом. |
Автор: lazycat 7.12.2016, 19:29 |
Действительно, это уже становится претензией типа "как мед так и ложка". Никто не мешает добавить тег в pom. К тому же большую часть времени на этапе разработки запускать из архива, как правило не приходится, достаточно иметь скомпиленные классы. Спасибо большое за участие! P.S. Поскольку тему создавал не я, не мне ее и помечать как закрытую. Пусть автор решает, все ли ему понятно. |