Как правильно строить банки из IntelliJ?
У меня есть проект, который содержит один модуль, и некоторые зависимости.
Я хотел бы создать jar, в отдельном каталоге, который содержит скомпилированный модуль. Кроме того, я хотел бы иметь зависимости, присутствующие рядом с моим модулем.
независимо от того, как я кручу процесс "build jar" IntelliJ, вывод моего модуля кажется пустым (кроме файла META-INF).
12 ответов:
вот как построить банку с IntelliJ 10 http://blogs.jetbrains.com/idea/2010/08/quickly-create-jar-artifact/
файл - > структура проекта -> настройки проекта -> артефакты -> нажмите зеленый знак плюс -> Jar - > из модулей с зависимостями...
выше устанавливается "скелет", в котором будет сохранена банка. На самом деле построить и сохранить его, сделать следующее:
извлечь в цель Банку
ОК
Построить / Построить Артефакт
недавно у меня была эта проблема, и я думаю, что эти шаги легко выполнить, если какое-либо предыдущее решение или ссылка отсутствуют.
Как создать
.jarиспользование IntelliJ IDEA 14.1.5:
- Файл > Сохранить Все.
- запустите драйвер или класс с помощью метода main.
- Файл > Структура Проекта.
- Выберите Вкладку "Артефакты".
- Нажмите зеленую кнопку Плюс в верхней части окна.
- выберите JAR из выпадающего меню Добавить. Выбирать "Из модулей с зависимостями"
- выбрать главный класс.
- переключатель должен выбрать " извлечь в целевую банку.- Нажмите кнопку ОК.
- установите флажок "построить на make"
- Нажмите кнопку Применить и ОК.
- в главном меню выберите построение выпадающего списка.
- выберите опцию Создать артефакты.
Это все еще проблема в 2017 году, я надеюсь, что это поможет кому-то там! Я нашел 2 возможности для создания рабочих jar-s под IntelliJ 2017.2
1. Создание артефакта из IntelliJ:
- перейти к структуре проекта:
- создать новый артефакт:
- выбрать главный класс, и обязательно измените папку манифеста:
вы должны изменить каталог манифеста:
<project folder>\src\main\javaзаменить "java" на "ресурсы"
<project folder>\src\main\resourcesвот как это должно выглядеть:
затем вы выбираете зависимости, которые вы хотите упаковать в свою банку, или рядом с вашим файлом jar
чтобы построить свой артефакт перейдите к постройте артефакты и выберите "перестроить". Он создаст папку " out " с вашим файлом jar и его зависимостями.
2. Использование Maven-assembly-plugin
добавить раздел сборки в файл 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>
- создать новую конфигурацию запуска / отладки:
- выбрать применение:
- заполните форму
- добавьте цель maven "assembly: single" после сборки, которая будет выполнена последней
- сохраните его, а затем запустите
эта процедура создаст файл jar под "target" папка
Это, вероятно, немного поздно, но мне удалось решить это таким образом -> откройте с помощью winrar и удалите ECLIPSEF.RSA и ECLIPSEF.SF в папке META-INF, кроме того, поставил "Main-class: main_class_name" (без ".класс") в манифесте.МФ. Убедитесь, что вы дважды нажали "Enter" после последней строки, иначе это не сработает.
идея 8.1.3
Jar в порядке, так как есть скомпилированный вывод в каталоге 'output' (project/out/production//)
Я думаю, вы должны запустить 'make' перед созданием jar
для зависимостей просто проверьте "показать библиотеку" и выберите то, что вы хотите.
вы можете взглянуть на Maven (http://maven.apache.org). Вы можете использовать его либо в качестве основного процесса сборки для вашего приложения, либо просто для выполнения определенных задач через диалоговое окно редактирования конфигураций. Процесс создания JAR модуля в Maven довольно тривиален, если вы хотите, чтобы он включал все зависимости в самоисполняемую JAR, которая также тривиальна.
Если вы никогда не использовали Maven раньше, то вы хотите прочитать лучше Сборки С Помощью Maven.
С 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>
Если вы используете сторонние библиотеки с вашим проектом или если у вас возникли проблемы с созданием манифеста.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 IDEA из проекта maven, все изменения будут потеряны.
создание jar должно быть вызвано конфигурацией запуска / отладки, а не настройками проекта.
Jetbrains имеет хорошее описание того, как вы можете сделать это здесь:
https://www.jetbrains.com/help/idea/maven.html
прокрутите вниз до раздела под названием "Настройка триггеров для целей Maven".
(единственным недостатком их описания является то, что их скриншоты находятся в черно-белой цветовой схеме по умолчанию вместо супер-удивительной темы darcula. Фу!)
Итак, в основном, вы открываете панель "проекты Maven", находите интересующий вас проект (в вашем случае проект, который строит ваш jar), под ним вы находите цель maven, которую вы хотите выполнить (обычно цель "пакет" создает jars,) вы открываете контекстное меню на нем (щелкните правой кнопкой мыши на машине Windows), и там будет "выполнить перед запуском/отладкой..."вариант, который вы можете выбрать, и он возьмет вас за руку оттуда. Действительно простой.
в случае если вы пытаетесь построить банку с Котлин вам нужно создать
src/main/javaпапка и использовать эту папку в качестве места для папки META-INF.
Ant и Maven широко используются. Я предпочитаю Ant, я чувствую, что это более легкий, и вы разработчик больше контролируете. Некоторые предположили бы, что это его недостаток :-)















Comments