У меня есть проект, который содержит один модуль и некоторые зависимости. Я хотел бы создать JAR, в отдельном каталоге, который содержит скомпилированный модуль. Кроме того, я хотел бы, чтобы зависимости присутствовали рядом с моим модулем.
Независимо от того, как я закручиваю процесс IntelliJ «build jar», вывод моего модуля выглядит пустым (кроме файла META-INF).
источник
Это все еще проблема в 2017 году, я надеюсь, что это поможет кому-то там! Я нашел 2 возможности для создания рабочих jar-ов под IntelliJ 2017.2
1. Создание артефакта из IntelliJ:
Вы должны изменить каталог манифеста:
заменить "Java" на "ресурсы"
Вот как это должно выглядеть:
Затем вы выбираете зависимости, которые вы хотите упаковать в свой jar-файл или NEAR-файл jar-файла.
Чтобы построить свой артефакт, перейдите к созданию артефактов и выберите «перестроить». Он создаст папку «out» с вашим файлом jar и его зависимостями.
2. Использование maven-assembly-plugin
Добавить раздел сборки в файл pom
Эта процедура создаст файл JAR в папке «target»
источник
no main manifest attribute
принимал вышеуказанные решения. Никто не упомянул об измененииpath to manifest
. Thnx !!У меня недавно была эта проблема, и я думаю, что эти шаги легко выполнить, если в каком-либо предыдущем решении или ссылке отсутствуют детали.
Как создать с
.jar
помощью IntelliJ IDEA 14.1.5:источник
Для тех, кто получает выгоду от изображений, как я:
File -> Project Structure
источник
Вот 2 примера с проектом Maven, шаг за шагом:
Способ 1: собрать банку с maven и pom.xml
в pom.xml добавьте maven-jar-plugin.
Снимок экрана: 4. Откройте окно проекта Maven, нажав на значок поиска и введите Maven,
нажмите на очистить, затем нажмите на установку
Ваш файл JAR будет отображаться в целевой папке
проверить свой jar с помощью java -jar
Способ 2: построить банку с Maven без изменения pom.xml
Очень важно!
Файл MANIFEST.MF должен находиться в вашей папке ресурсов, а Main.Class должен ссылаться на {package} - {class-name-that-contains-main-class}
источник
Возможно, уже немного поздно, но мне удалось решить это следующим образом -> открыть с помощью winrar и удалить ECLIPSEF.RSA и ECLIPSEF.SF в папке META-INF, кроме того, поставить «Main-class: main_class_name» (без «.class» ) в МАНИФЕСТ.МФ. Убедитесь, что вы нажали «Enter» дважды после последней строки, иначе это не сработает.
источник
Когда я использую эти решения, эта ошибка приходит:
и решение :
Вы должны изменить каталог манифеста:
изменить Java на ресурсы
источник
Я пытался создать банку из многомодульного приложения Kotlin и получал пресловутую ошибку «нет атрибута главного манифеста». Создание каталога манифеста в
src/main/resources
тоже не работало.Вместо этого, он работает при его создании в
src
непосредственно:src/META-INF/MANIFEST.MF
.источник
Как говорят люди выше, но я должен отметить один момент. Вы должны проверить флажок:
источник
Идея 8.1.3
Jar в порядке, так как есть скомпилированный вывод в директории 'output' (project / out / production //)
Я полагаю, вы должны запустить 'make', прежде чем строить банку
для зависимостей просто отметьте «Показать библиотеку» и выберите то, что вы хотите.
источник
С Maven вы можете использовать этот плагин:
источник
Возможно, вы захотите взглянуть на Maven ( http://maven.apache.org ). Вы можете использовать его как основной процесс сборки для вашего приложения, или просто для выполнения определенных задач через диалог Edit Configurations. Процесс создания JAR-модуля в Maven довольно тривиален, если вы хотите, чтобы он включал все зависимости в самозапускаемый JAR-файл, который также тривиален.
Если вы никогда раньше не пользовались Maven, тогда вам стоит прочитать Better Builds With Maven .
источник
Если вы используете сторонние библиотеки со своим проектом или у вас есть проблемы с созданием файла MANIFEST.MF должным образом, могут возникнуть конфликты при запуске файлов JAR, созданных с использованием
метод, упомянутый выше.
Вместо этого я предлагаю вам создать пустой JAR и вручную добавить все остальные элементы в выходной корень. Замечательная статья в блоге для этого метода может быть найдена здесь: http://karthicraghupathi.com/2016/07/10/creating-an-executable-jar-in-intellij-idea/ Я попробовал шаги, упомянутые там, и все работало нормально для меня!
источник
Некоторые другие ответы бесполезны, потому что как только вы повторно импортируете проект IntelliJ IDEA из проекта maven, все изменения будут потеряны.
Сборка фляги должна быть вызвана конфигурацией запуска / отладки, а не настройками проекта.
Jetbrains имеет хорошее описание того, как вы можете сделать это здесь:
https://www.jetbrains.com/help/idea/maven.html
Прокрутите вниз до раздела «Настройка триггеров для целей Maven».
(Единственным недостатком их описания является то, что их скриншоты имеют стандартную черно-белую цветовую схему вместо супер-классной темы про Даркулу. Тьфу!)
Итак, в основном вы открываете панель «Maven Projects», вы находите интересующий вас проект (в вашем случае проект, который создает ваш jar), под ним вы находите цель maven, которую хотите выполнить. (обычно цель «package» создает jar-файлы), вы открываете в нем контекстное меню (щелкните правой кнопкой мыши на машине с Windows) и появится опция «Выполнить перед запуском / Отладка ...», которую вы можете выберите, и он возьмет вас за руку оттуда. Действительно легко.
источник
В случае, если вы пытаетесь собрать jar с kotlin, вам нужно создать
src/main/java
папку и использовать эту папку в качестве места для папки META-INF.источник
Вот официальный ответ Справки IntelliJ IDEA 2018.3 . Я пытался, и это сработало.
источник
Моя проблема была в следующем: я использовал Intellij IDEA (пробовал разные версии) + Gradle. Когда я скомпилировал проект и собрал artifacf jar, как указано в приведенных выше ответах, я получил ошибку - «нет основного манифеста attrubute ...»
Это решение сработало для меня (особая благодарность Thilina Ashen Gamage (см. Выше) за подсказку):
Выдержка - если вы используете внешние библиотеки и строите проект через Настройки проекта - Артефакты - Добавить (+) - Jar - Из модулей с зависимостями , то, вероятно, из-за ошибки программы в папке META-INF с файлом «MANIFEST_MF», не включающем jar. Чтобы избежать этого, создайте ПУСТОЙ jar-файл.
Настройки проекта - Артефакты - Добавить (+) - Jar - ПУСТОЙ JAR . Папка META-INF будет добавлена в папку ресурсов . Затем выберите свой основной класс. Вы увидите следующую структуру jar: обратите внимание на наличие папки META-INF. Затем вы можете собрать свой проект и собрать артефакты. Это решение работало и для приложений javaFX.
источник
Если вы работаете над проектом spring / mvn, вы можете использовать эту команду:
Файл jar будет сохранен на целевой директой.
источник
Муравей и мавен широко используются. Я предпочитаю Ant, я чувствую, что он более легкий, а вы, разработчик, лучше контролируете ситуацию. Некоторые предполагают, что это его недостаток :-)
источник