Сбор Kotlin + Maven: нет основного атрибута манифеста

У меня проблема с сборкой проекта Kotlin с некоторыми зависимостями с файлом JAR с использованием Maven.

Как я собираю проект в JAR:

RightPanel -> MavenProjects -> Lifecycle -> package -> run 

Когда я запускаю JAR-файл:

 java -jar path.jar 

Я получаю следующую ошибку:

 no main manifest attribute, in path.jar 

Я добавил maven-assembly-plugin как здесь :

Поэтому мой каталог плагинов выглядит следующим образом:

 <build> <sourceDirectory>src/main/kotlin</sourceDirectory> <testSourceDirectory>src/test/kotlin</testSourceDirectory> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.6</version> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <archive> <manifest> <mainClass>${main.class}</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-maven-plugin</artifactId> <version>${kotlin.version}</version> <executions> <execution> <id>compile</id> <phase>compile</phase> <goals> <goal>compile</goal> </goals> </execution> <execution> <id>test-compile</id> <phase>test-compile</phase> <goals> <goal>test-compile</goal> </goals> </execution> </executions> </plugin> </plugins> </build> 

main.class определено здесь:

 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <kotlin.version>1.1.51</kotlin.version> <junit.version>4.12</junit.version> <main.class>ru.icarumbas.main.HelloKt</main.class> </properties> 

Некоторые факты:

  • Hello.kt – это стартовый класс, и он имеет удовольствие от main(...){}
  • Когда я распаковываю JAR, у меня есть папка META-INF.

Версии:

  • Платформа: Mac OS
  • Версия Котлина: 1.1.51
  • Версия Maven: 4.0.0

Может быть, я чего-то не хватает. Я уже рассмотрел множество вопросов, и они мне не помогли. Поэтому, пожалуйста, не отмечайте это как дублирующее и напишите комментарий, если вы хотите увидеть больше кода. Я не показывал свой полный файл pom.xml поэтому напишите мне, если вы хотите увидеть его полностью.

У меня такие проблемы с котлином и maven. Я решил это следующим образом (Application.kt):

 package org.somepackage open class Application { companion object { @JvmStatic fun main(args: Array<String>) { // something.. } } } 

– Итак, сначала я написал класс kotlin с основным внутри него.

Во-вторых, так как в вашем случае определялся основной класс в реквизитах следующим образом <main.class>org.somepackage.Application</main.class>

После завершения команды mvn clean install у меня есть необходимый файл someapp-1.0-SNAPSHOT-jar-with-dependencies.jar, который смог работать.

И в конце, пожалуйста, обратите внимание, что вы запускаете ровно jar-with-dependencies.jar (не разделенная версия, как приложение-1.0-SNAPSHOT.jar).