Kotlin + Maven组装:没有主要的清单属性

我有问题使用Maven将Kotlin项目与一些依赖关系组合到JAR文件中。

我如何将项目组装到JAR中:

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

当我运行JAR文件时:

 java -jar path.jar 

我得到以下错误:

 no main manifest attribute, in path.jar 

我已经添加了像这样的maven-assembly-plugin

所以我的插件目录看起来像这样:

  src/main/kotlin src/test/kotlin   org.apache.maven.plugins maven-assembly-plugin 2.6   make-assembly package  single     ${main.class}    jar-with-dependencies       org.jetbrains.kotlin kotlin-maven-plugin ${kotlin.version}   compile compile  compile    test-compile test-compile  test-compile       

这里定义的main.class属性:

  UTF-8 1.1.51 4.12 ru.icarumbas.main.HelloKt  

一些事实:

  • Hello.kt是入门级的,它很有趣main(...){}
  • 当我解压缩JAR它有META-INF文件夹。

版本:

  • 平台:Mac OS
  • Kotlin版本:1.1.51
  • Maven版本:4.0.0

也许我错过了一些东西。 我已经看过很多类似的问题,但他们并没有帮助我。 所以,如果你想看更多的代码,请不要将其标记为重复,并写下评论。 我没有显示我的完整的pom.xml文件,所以如果你想看到它满的写我。

我有kotlin和maven这样的问题。 我已经解决了以下的方式(Application.kt):

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

所以首先我写了一个主要的kotlin类。

其次,就像在你的情况下,通过以下方式在道具中定义主类: org.somepackage.Application

mvn干净安装命令完成后,我已经得到了必要的someapp-1.0-SNAPSHOT-jar-with-dependencies.jar能够工作。

最后请注意,你正好运行jar-with-dependencies.jar(而不是像app-1.0-SNAPSHOT.jar这样的剥离版本)。