我尝试使用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