我正在尝试使用Maven构建我的Scala项目,我使用此示例POM作为指导: http://ryancompton.net/2014/05/19/sample-pomxml-to-build-scala--jar-with-dependenciesjar/
但我得到了这个:
Exception in thread "main" java.lang.ClassNotFoundException: com.organization.XXX.dataProfiling
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:195)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:122)
Process finished with exit code 1
一位同事设法用SBT建立了良好的代码,但我们的组织使用Maven作为企业标准。如果它使用IntelliJ的
中的maven clean包构建jar,就会发生这种情况答案 0 :(得分:0)
有三件事要检查。
检查您是否已定义" mainClass"在您的POM中显示,如下所示。你构建的胖罐需要知道哪个类是主类。
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5.5</version>
<configuration>
<archive>
<manifest>
<mainClass>org.sample.App</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</project>
确保您的主类具有与&#34; mainClass&#34;中指定的相同的包名称。在POM中体现。
例如,如果您的主类被指定为&#34; org.sample.App&#34;在POM中,你的主要课程应该有包&#34; org.sample&#34;和#34; App&#34;。
的班级名称确保您的主要课程定义了&#34; main&#34;方法,如下所示。
对象HelloWorld {
def main(args: Array[String]) {
println("Hello, world!")
}
}