Scala with maven:用一个类执行一个 -jar-with-dependencies



这可能是一个愚蠢的问题,但我无法理解它。

如何执行使用maven package创建的 jar,该 jar 带来了相当多的依赖项(生成的 jar 为 100MB(?

我没有mainClass,但我希望根据要执行的模块运行它。

我尝试过的事情:

1.

scala  my_app_2.0.1-jar-with-dependencies.jar App1

    java.lang.NullPointerException
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
        at scala.reflect.internal.util.ScalaClassLoader.$anonfun$tryClass$1(ScalaClassLoader.scala:44)
        at scala.util.control.Exception$Catch.$anonfun$opt$1(Exception.scala:242)
        at scala.util.control.Exception$Catch.apply(Exception.scala:224)
        at scala.util.control.Exception$Catch.opt(Exception.scala:242)
        at scala.reflect.internal.util.ScalaClassLoader.tryClass(ScalaClassLoader.scala:44)

阿拉伯数字。

scala -classpath my_app_2.0.1-jar-with-dependencies.jar package.path.App1
java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)Lscala/collection/mutable/ArrayOps;
    at org.rogach.scallop.ScallopConf.performOptionNameGuessing(ScallopConf.scala:17)
    at org.rogach.scallop.ScallopConfBase.verifyConf(ScallopConfBase.scala:686)
    at org.rogach.scallop.ScallopConfBase.verify(ScallopConfBase.scala:698)
    at iit.cnr.it.socialpipeline.utils.ArgConf.<init>(ArgConf.scala:19)
...

回答我自己,供将来参考。

好吧,既然您创建了带有 java maven 的 jar,并且您使用了 scala-plugin ,这是在依赖项中,您只需要使用以下命令:

java -classpath my_app_2.0.1-jar-with-dependencies.jar package.path.App1

就这么简单,你这个菜鸟 - 没有冒犯(好吧,我在回答自己。所以我认为对自己无礼是很公平的:D(。

由于它可以作为普通的Java程序运行,因此您可以使用Exec Maven插件。我确认它是可行的

最新更新