构建Scala对象,找不到类

时间:2015-06-17 16:34:49

标签: scala maven intellij-idea

我正在尝试使用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,就会发生这种情况

1 个答案:

答案 0 :(得分:0)

有三件事要检查。

  1. 检查您是否已定义" 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>
    
  2. 确保您的主类具有与&#34; mainClass&#34;中指定的相同的包名称。在POM中体现。

  3. 例如,如果您的主类被指定为&#34; org.sample.App&#34;在POM中,你的主要课程应该有包&#34; org.sample&#34;和#34; App&#34;。

    的班级名称
    1. 确保您的主要课程定义了&#34; main&#34;方法,如下所示。

      对象HelloWorld {

      def main(args: Array[String]) {
        println("Hello, world!")
      }
      

      }