У меня есть проект, содержащий один модуль и некоторые зависимости. Я хотел бы создать jar в отдельном каталоге, содержащий скомпилированный модуль. Кроме того, я хотел бы, чтобы зависимости присутствовали рядом с моим модулем.
Как бы я не извращался с процессом IntelliJ' "build jar", выход моего модуля оказывается пустым (кроме файла META-INF).
Здесь's, Как построить кувшин с IntelliJ 10 http://blogs.jetbrains.com/idea/2010/08/quickly-create-jar-artifact/
Файл -> По структуре -&проект gt; Настройки -&ГТ проект; артефакты -и GT; нажмите зеленый знак-и плюс ГТ; банку -> из модулей с зависимостями...
Выше устанавливает, что "скелет", чтобы где банку будет сохранен. На самом деле построить и сохранить его, сделать следующее:
Экстракт целевой банку
ОК
Строить | Построить Артефакт
Это все-таки проблема в 2017 году, я надеюсь, это поможет кто-то там! Я нашел 2 возможности, чтобы создать рабочую банку-под IntelliJ 2017.2
1. Создание артефакта из IntelliJ:
Вы должны изменить манифест каталога:
<project folder>\src\main\java
замены "Ява" и с "ресурсов и"
<project folder>\src\main\resources
Вот как это должно выглядеть:
Затем вы выбираете в зависимости, что вы хотите быть упакованы в вашем банке, или рядом с вашим jar-файл
Чтобы построить свой артефакт, собрать артефакты и выбрать, что "перестроение" и. Он создаст собой "вне" в папку с файлом jar и его зависимостей.
2. Использование Maven-сборка-плагин
Добавить раздел сборки в файл POM
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<finalName>ServiceCreate</finalName>
<appendAssemblyId>false</appendAssemblyId>
<archive>
<manifest>
<mainClass>com.svt.optimoo.App</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
Эта процедура позволит создать файл Jar в графе "цель" в папку
Недавно я имел эту проблему и думаю, что эти шаги являются легко следовать, если все предыдущие решения или ссылка деталь отсутствует.
Как создать `.банку с помощью IntelliJ идея 14.1.5:
Вот 2 примера с Maven-проекта, Шаг за шагом:
<плагин> в <группы>орг."Апач".Мэйвен.Плагины</идентификатор_группы> <ИД артефакта>Мэйвен-банку-плагин</ИД артефакта> <версия>3.1.0</версия> <настройки и GT; <архиве> <манифест>
захват экрана:
4. окно открытого проекта Maven с, нажмите на значок поиска и Maven тип,
проверить свой банке через Ява -фляга <ваш-банку-имя>
Манифест.СЧ должен быть в папке Resources и Main.Class нужно обратиться к {пакет}-{имя-класса-что-содержит-главный-класса}
Это, вероятно, немного поздно, но мне удалось решить этот способ -> открыть с помощью WinRAR и удалите ECLIPSEF.ОГА и ECLIPSEF.СФ в META-INF папку, кроме того ставят на "основной класс: main_class_name и" (без " по.класса“) в манифесте.МФ. Убедитесь, что вы нажали на "введите" в два раза после последней строки, в противном случае он выиграл'т работу.
Когда я использую эти решения Эта ошибка идет:
java -jar xxxxx.jar
нет главных атрибутов манифеста, в xxxxx.jar
и решение:
Вы должны изменить манифест каталога:
<project folder>\src\main\java
изменение Java для ресурсов
<project folder>\src\main\resources
Как человек выше говорит, но я должен отметить один момент. Вы должны проверить флажок:
включить в проект строить
С Maven вы можете использовать этот плагин:
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>[path you class main]</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Идея 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) и будет собой "Выполнить до запуска/отладки..." и вариант, который можно выбрать, и она будет взять вас за руку от туда. Очень легко.
Я пытался построить банку от многомодульная Котлин приложение и получать пресловутые 'не главный атрибут manifest' ошибка. Создание манифеста директорию в src/главная/ресурсы` я't работа либо.
Вместо этого, он работает при создании его в источник
напрямую: в src/мета-инф/манифеста.МФ
.
Если вы используете сторонние библиотеки с вашего проекта, или если у вас есть проблемы с созданием манифеста.Файл MF должным образом, могут возникнуть конфликты при запуске JAR-файлы, сгенерированные с помощью
File > Project Structure > Artifacts > '+' > JAR > From modules with dependencies > .....
упомянутый выше метод.
Вместо этого я предлагаю вам создать пустую банку и добавить все остальные элементы в корень выхода вручную. Замечательная статья в блоге, этот метод может быть найден здесь: http://karthicraghupathi.com/2016/07/10/creating-an-executable-jar-in-intellij-idea/ я пробовал следующие действия, указанные там, и все работало нормально для меня!
Вот официальный ответ от Идея IntelliJ 2018.3 помочь. Я попробовал и это сработало.
, Чтобы создать jar файл из модуля;
В главном меню, выбрать Создать | создать артефакт.
Из выпадающего списка выберите нужный артефакт типа jar. в списке отображаются все артефакты, настроенные для текущего проекта. Все настроено причине артефактов, выберите команду построить всех вариант артефактов.
Возможно, вы захотите взглянуть на 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.