我嘗試使用exec運行主:行家的java的目標來運行階對象如何在斯卡拉對象從Maven的
類已被編譯,我們可以從javap的看到它有一個靜態主:
javap sql/hbase/target/scala-2.10/test-classes/org/apache/spark/sql/hbase/HBaseMainTest.class | grep main
public static void main(java.lang.String[]);
讓我們嘗試運行此如下:
mvn exec:java -Dexec.mainClass="org.apache.spark.sql.hbase.HBaseMainTest"
但是結果
java.lang.ClassNotFoundException: org.apache.spark.sql.hbase.HBaseMainTest
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:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:281)
at java.lang.Thread.run(Thread.java:724)
UPDATE
的Gabor提供答案,這裏是工作的解決方案:
mvn exec:java -Dexec.mainClass="org.apache.spark.sql.hbase.HBaseMainTest" -Dexec.classpathScope="test"
'exec:java'是否將測試類添加到類路徑中?這將是令人驚訝的恕我直言。 – 2014-12-04 22:01:54
@GáborBakos你可能是在正確的軌道上。 – javadba 2014-12-05 00:00:20