Дополнительно
Как правильно собирать банки из IntelliJ?
У меня есть проект, содержащий один модуль и некоторые зависимости. Я хотел бы создать jar в отдельном каталоге, содержащий скомпилированный модуль. Кроме того, я хотел бы, чтобы зависимости присутствовали рядом с моим модулем.
Как бы я не извращался с процессом IntelliJ' "build jar", выход моего модуля оказывается пустым (кроме файла META-INF).
473
19
Здесь's, Как построить кувшин с IntelliJ 10 http://blogs.jetbrains.com/idea/2010/08/quickly-create-jar-artifact/
Файл -> По структуре -&проект gt; Настройки -&ГТ проект; артефакты -и GT; нажмите зеленый знак-и плюс ГТ; банку -> из модулей с зависимостями...
Выше устанавливает, что "скелет", чтобы где банку будет сохранен. На самом деле построить и сохранить его, сделать следующее:
Экстракт целевой банку
ОК
Строить | Построить Артефакт
Это все-таки проблема в 2017 году, я надеюсь, это поможет кто-то там! Я нашел 2 возможности, чтобы создать рабочую банку-под IntelliJ 2017.2
1. Создание артефакта из IntelliJ:
Вы должны изменить манифест каталога:
замены "Ява" и с "ресурсов и"
Вот как это должно выглядеть:
Затем вы выбираете в зависимости, что вы хотите быть упакованы в вашем банке, или рядом с вашим jar-файл
Чтобы построить свой артефакт, собрать артефакты и выбрать, что "перестроение" и. Он создаст собой "вне" в папку с файлом jar и его зависимостей.
2. Использование Maven-сборка-плагин
Добавить раздел сборки в файл POM
Эта процедура позволит создать файл Jar в графе "цель" в папку
Недавно я имел эту проблему и думаю, что эти шаги являются легко следовать, если все предыдущие решения или ссылка деталь отсутствует.
Как создать `.банку с помощью IntelliJ идея 14.1.5:
Для тех, что выгоду от картинки, как я делаю:
Файл -> структура проекта
Вот 2 примера с Maven-проекта, Шаг за шагом:
Метод 1: Создать jar с Maven и pom.xml
<плагин> в <группы>орг."Апач".Мэйвен.Плагины</идентификатор_группы> <ИД артефакта>Мэйвен-банку-плагин</ИД артефакта> <версия>3.1.0</версия> <настройки и GT; <архиве> <манифест>
Это, вероятно, немного поздно, но мне удалось решить этот способ -> открыть с помощью WinRAR и удалите ECLIPSEF.ОГА и ECLIPSEF.СФ в META-INF папку, кроме того ставят на "основной класс: main_class_name и" (без " по.класса“) в манифесте.МФ. Убедитесь, что вы нажали на "введите" в два раза после последней строки, в противном случае он выиграл'т работу.
Когда я использую эти решения Эта ошибка идет:
и решение:
Вы должны изменить манифест каталога:
изменение Java для ресурсов
Как человек выше говорит, но я должен отметить один момент. Вы должны проверить флажок:
С Maven вы можете использовать этот плагин:
Идея 8.1.3
Jar в порядке, так как есть скомпилированный вывод в 'output' директории (project/out/production//)
Полагаю, что перед сборкой jar нужно запустить 'make'.
для зависимостей просто проверьте "show library" и выберите то, что вам нужно.
Некоторые другие ответы бесполезны, потому что, как только вы повторно импортировать проект в IntelliJ идея Maven-проекта, все изменения будут потеряны.
Здание банку должен быть вызван запуска/отладки, а не от настроек проекта.
В JetBrains есть хорошее описание того, как можно сделать это здесь:
https://www.jetbrains.com/help/idea/maven.html
Прокрутите вниз до раздела под названием "Настройка триггеров для целей Maven с помощью".
(Единственный минус их описание заключается в том, что их скриншоты по умолчанию черно-белой цветовой схемы вместо суперская тема darcula. Тьфу!)
Так что, в принципе, то, что вы делаете, что вы открываете "в Maven-проекты" и панели можно найти заинтересовавший вас проект, (в вашем случае, проект создает банку,) под ним вы находите Мэйвен цель, которую вы хотите выполнить, (обычно в "пакет" в цель создает банки,) вы можете открыть контекстное меню на его, (правой кнопкой мыши в ОС Windows) и будет собой "Выполнить до запуска/отладки..." и вариант, который можно выбрать, и она будет взять вас за руку от туда. Очень легко.
В случае если вы пытаетесь построить банку с Котлин вам нужно создать папку в `src/главная/Java и использовать эту папку в качестве места для мета-INF папку.
Я пытался построить банку от многомодульная Котлин приложение и получать пресловутые 'не главный атрибут manifest' ошибка. Создание манифеста директорию в src/главная/ресурсы` я't работа либо.
Вместо этого, он работает при создании его в
источник
напрямую:в src/мета-инф/манифеста.МФ
.Если вы используете сторонние библиотеки с вашего проекта, или если у вас есть проблемы с созданием манифеста.Файл MF должным образом, могут возникнуть конфликты при запуске JAR-файлы, сгенерированные с помощью
упомянутый выше метод.
Вместо этого я предлагаю вам создать пустую банку и добавить все остальные элементы в корень выхода вручную. Замечательная статья в блоге, этот метод может быть найден здесь: http://karthicraghupathi.com/2016/07/10/creating-an-executable-jar-in-intellij-idea/ я пробовал следующие действия, указанные там, и все работало нормально для меня!
Вот официальный ответ от Идея IntelliJ 2018.3 помочь. Я попробовал и это сработало.
Возможно, вы захотите взглянуть на Maven (http://maven.apache.org). Вы можете использовать его либо как основной процесс сборки вашего приложения, либо просто для выполнения определенных задач через диалог Edit Configurations. Процесс создания JAR модуля в Maven довольно тривиален, если вы хотите, чтобы он включал все зависимости в самоисполняемый JAR, это также тривиально.
Если вы никогда раньше не использовали Maven, то вам стоит прочитать [Better Builds With Maven] (http://maven.apache.org/articles.html).
Моя проблема была такая: я использовал Intellij идея (пробовал разные версии) + Градля. Когда я скомпилировал проект и построил artifacf банку, как указано в приведенных выше ответов, я получил сообщение об ошибке - "нет главный манифест attrubute ...и"
Это решение работает для меня (отдельное спасибо Thilina пепельный Гамаге (см. выше) за совет):
Выдержка - при использовании внешних библиотек и построения проекта через параметры проекта - артефакты - добавить (+) - банку - от модулей с зависимостями, то, наверное, потому, что программы ошибка мета-INF папку с MANIFEST_MF файл не включая в банке. Чтобы избежать его создать пустой jar-файл.
Параметры проекта - артефакты - добавить (+) - банку - пустую банку. Мета-INF папку будут добавлены к ресурсы папка. Выберите ваш основной класс. Вы увидите следующую структуру банке:
Обратите внимание на наличие папку мета-инф
Затем вы можете построить свой проект и создавать артефакты. Это решение сработало для приложений JavaFX.
Если вы работаете на весенний проект/МВН вы можете использовать эту команду:
Jar-файл будет сохранен на целевую директорию.
Широко используются Ant и Maven. Я предпочитаю Ant, мне кажется, что он более легкий, и вы, разработчик, больше контролируете ситуацию. Некоторые считают, что это его недостаток :-)