Ошибка «нет основного манифеста» в intellij при выполнении jar

Я работаю над проектом kotlin, который я хочу выполнить как банку. Это все сделано в IntelliJ Idea, и я начал делать банку, используя артефакты.

Процесс, который я последовал, был (как показано в руководстве Idea):

  1. Добавить артефакт (как банку) из структуры проекта
  2. Построить банку
  3. Запустить банку

После этого я получаю

'no main manifest attribute, in ____.jar' 

Что я пробовал после чтения нескольких вопросов переполнения стека:

  • Проверка того, что файл манифеста находится в правильной папке и имеет правильный путь в артефакте
  • Добавление кода в файл build.gradle для части jar-> manifest
  • Попытка метода перемещения манифеста в папку ресурсов
  • Проверка того, что банка существует
  • Перемещение файлов манифеста в другую папку (java, kotlin, out folders)
  • Убедитесь, что файл манифеста находится в правильном формате

Все вышесказанное не сработало.

Что-то, что меня смущает, состоит в том, что даже когда я изменяю файл манифеста в «неправильном» формате, он все равно дает ту же ошибку. Путь, указанный в деталях артефакта, верен, но нет никакой разницы, даже когда я намеренно вводят неправильные элементы в файле манифеста. Не уверен, что это «настоящая» проблема, но я также не уверен, как это исправить

Для тех, кто, возможно, столкнулся с этой проблемой в intellij и не нашел решения в каких-либо других сообщениях, мне помогло

  1. Переход к структуре проекта
  2. Переход на вкладку «Артефакты»
  3. Явное добавление нового каталога META-INF / в мою банку
  4. Добавление созданного файла MANIFEST.MF в META-INF / в банке из таблицы ARTIFACTS TAB
  5. Изменение порядка для META-INF / в верхней части
  6. Строительство и эксплуатация

Конечный результат выглядел так:

Intereting Posts
Встроенная функция Kotlin не работает должным образом Замена Kotlin для groovy XmlSlurper & MarkupBuilder В чем разница между get и вызовом в Котлин? Удостоверьтесь, что multipart имеет значение null в контроллере останова Ссылка на метод конкретного экземпляра в Котлине jvm сравнение String с StringBuffer.reverse () всегда не выполняется Как разрушить конструктор в Котлине FATAL EXCEPTION: основное исключение KotlinNullPointerException Вывод типа компилятора Kotlin не может выбрать способ вызова (двусмысленность с типичными типами) Как использовать MapBuilder в kotlin и добавить все значения? Котин Как указать метку возврата при закрытии в лямбда Как решить эту «нерешенную ссылку», когда я определил эту функцию? Необычный сбой только на каком-то устройстве – асинхронные вызовы kotlin coroutines Локальная система управления пакетами Java в стиле PIPON PIP? Как назначить нулевое значение переменной типа функции в Котлин?