【发布时间】:2011-03-24 00:40:50
【问题描述】:
我创建了 scala 应用程序,现在我想构建 jar。
我运行mvn package,而不是尝试通过命令运行 jar
java -jar target/burner-1.0-SNAPSHOT.jar
我看到了错误:
Failed to load Main-Class manifest attribute from
如何定义 Main-Class 属性? 我需要创建 Manifest.mf 吗?在哪里? 或者我需要在 pom.xml 中的某个地方有 mainclass 属性?
更新: 我创建了包含内容的 src/main/resources/MANIFEST.MF 文件
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: itsabear
Main-Class: ru.dmteam.App
Build-Jdk: 1.6.0_20
我没有忘记文件末尾的行结束符。
在mvn package 之后,我看到了新罐子。我检查了这个 jar 中的 manifest.mf - 它包含正确的主类,但是当我输入 java -jar target/burner-1.0-SNAPSHOT.jar 时,我仍然看到错误 Failed to load Main-Class manifest attribute from
我的 pom.xml http://pastie.org/1070483
更新 2
我发现现在 jar 中有两个 manifest.mf 文件。
MANIFEST.MF 和 META-INF/MANIFEST.MF
我将自定义 MANIFEST.MF 移动到刚刚创建的 META-INF 文件夹(在 src/main/resources 中),但现在 mvn package 在创建 jar 时覆盖它...
【问题讨论】:
-
你能发布一份你的 pom.xml 的副本吗?您应该能够在 Maven 中执行此操作,而无需手动创建清单文件。
-
我已经更新了帖子。
-
我发现了一些新事实并更新了帖子。
-
scala 文件是否已添加到您的 jar 中?这可以解释为什么在 'scala -cp' 工作时'java -jar' 命令不起作用。您可以使用 maven-assembly-plugin 打包 scala 依赖项(我认为您也可以在此处指定默认的主类)。
-
hmm... 我的 jar 中没有 scala 文件。我将尝试根据 maven-scala-plugin 指南重新创建 pom.xml(现在很糟糕)。如果这没有帮助,我会尝试 maven 程序集。
标签: eclipse maven-2 scala m2eclipse