我正在使用IntelliJ中的maven编译Play2(v2.6)项目,但由于No main class
而无法运行。
我已按照here列出的说明操作,但没有为Play项目生成任何来源。
java.lang.RuntimeException: No main class detected.
at scala.sys.package$.error(package.scala:27)
[trace] Stack trace suppressed: run 'last compile:run' for the full output.
[error] (compile:run) No main class detected.
[error] Total time: 1 s, completed Jun 14, 2017 12:32:49 PM
当我尝试运行mvn play2:run
时,我得到以下堆栈跟踪:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.559 s
[INFO] Finished at: 2017-06-14T23:18:49+03:00
[INFO] Final Memory: 28M/442M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.google.code.play2-maven-plugin:play2-maven-plugin:1.0.0-beta9:run (default-cli) on project mps-play: ?: InvocationTargetException: akka.util.OptionVal$.contains$extension(Ljava/lang/Object;Ljava/lang/Object;)Z -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.google.code.play2-maven-plugin:play2-maven-plugin:1.0.0-beta9:run (default-cli) on project mps-play: ?
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
Caused by: org.apache.maven.plugin.MojoExecutionException: ?
at com.google.code.play2.plugin.Play2RunMojo.internalExecute(Play2RunMojo.java:529)
at com.google.code.play2.plugin.AbstractPlay2Mojo.execute(AbstractPlay2Mojo.java:139)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
... 21 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.google.code.play2.provider.play26.Play26Runner.runInDevMode(Play26Runner.java:102)
at com.google.code.play2.plugin.Play2RunMojo.internalExecute(Play2RunMojo.java:509)
... 24 more
Caused by: java.lang.NoSuchMethodError: akka.util.OptionVal$.contains$extension(Ljava/lang/Object;Ljava/lang/Object;)Z
at akka.stream.impl.LinearTraversalBuilder.offsetOf(TraversalBuilder.scala:780)
at akka.stream.impl.CompositeTraversalBuilder.add(TraversalBuilder.scala:1267)
at akka.stream.impl.CompletedTraversalBuilder.add(TraversalBuilder.scala:466)
at akka.stream.scaladsl.BidiFlow$.fromFlowsMat(BidiFlow.scala:234)
at akka.stream.scaladsl.BidiFlow$.fromFlows(BidiFlow.scala:261)
at akka.stream.scaladsl.BidiFlow$.<init>(BidiFlow.scala:188)
at akka.stream.scaladsl.BidiFlow$.<clinit>(BidiFlow.scala)
at akka.http.impl.engine.server.HttpServerBluePrint$.<init>(HttpServerBluePrint.scala:71)
at akka.http.impl.engine.server.HttpServerBluePrint$.<clinit>(HttpServerBluePrint.scala)
at akka.http.scaladsl.HttpExt.serverLayer(Http.scala:275)
at akka.http.scaladsl.HttpExt.fuseServerBidiFlow(Http.scala:72)
at akka.http.scaladsl.HttpExt.bindAndHandle(Http.scala:178)
at akka.http.scaladsl.HttpExt.bindAndHandleAsync(Http.scala:251)
at play.core.server.AkkaHttpServer.createServerBinding(AkkaHttpServer.scala:92)
at play.core.server.AkkaHttpServer.$anonfun$httpServerBinding$1(AkkaHttpServer.scala:109)
at play.core.server.AkkaHttpServer.$anonfun$httpServerBinding$1$adapted(AkkaHttpServer.scala:109)
at scala.Option.map(Option.scala:146)
at play.core.server.AkkaHttpServer.<init>(AkkaHttpServer.scala:109)
at play.core.server.AkkaHttpServerProvider.createServer(AkkaHttpServer.scala:391)
at play.core.server.AkkaHttpServerProvider.createServer(AkkaHttpServer.scala:388)
at play.core.server.DevServerStart$.$anonfun$mainDev$1(DevServerStart.scala:235)
at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
at play.core.server.DevServerStart$.mainDev(DevServerStart.scala:59)
at play.core.server.DevServerStart$.mainDevHttpMode(DevServerStart.scala:49)
at play.core.server.DevServerStart.mainDevHttpMode(DevServerStart.scala)
... 30 more
[ERROR]
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
答案 0 :(得分:0)
这是因为Scala插件sbt版本,激活器和intellij想法之间存在插件版本冲突。新的Intellij试图忽略$ PROJECT_DIR文件,而其他类将conf文件放在那里。
解决方法:将其放入play2_project_settings.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Play2ExcludedModulesSettings">
<option name="INFO">
<map>
<entry key="api">
<value>
<ProjectSettingsEntry>
<option name="confDir" value="$PROJECT_DIR$/api/app" />
<option name="templateImports">
<list>
<option value="_root_.play.twirl.api.TwirlFeatureImports._" />
<option value="_root_.play.twirl.api.TwirlHelperImports._" />
<option value="_root_.play.twirl.api.Html" />
<option value="_root_.play.twirl.api.JavaScript" />
<option value="_root_.play.twirl.api.Txt" />
<option value="_root_.play.twirl.api.Xml" />
<option value="models._" />
<option value="controllers._" />
<option value="play.api.i18n._" />
<option value="views.xml._" />
<option value="play.api.templates.PlayMagic._" />
<option value="play.api.mvc._" />
<option value="play.api.data._" />
</list>
</option>
<option name="routesImports">
<list>
<option value="controllers.Assets.Asset" />
</list>
</option>
<option name="uri" value="$PROJECT_DIR$/../../../../<custom-project-path>" />
</ProjectSettingsEntry>
</value>
</entry>
<entry key="chargeback-api">
<value>
<ProjectSettingsEntry>
<option name="playDistrPath" value="$USER_HOME$/.coursier/cache/v1/https/repo1.maven.org/maven2/com/typesafe/play/play_2.12/2.6.11/play_2.12-2.6.11.jar" />
</ProjectSettingsEntry>
</value>
</entry>
</map>
</option>
</component>
</project>
在custom-project-path中放入项目目录的绝对路径,它将像超级按钮一样工作!