-1

Я пытаюсь интегрировать фреймворк игры (java-версию) с идеей maven и intellij. Для этого я использую play2-maven-plugin (https://code.google.com/p/play2-maven-plugin/);Интеграция игрового фрейма с maven

Я создаю файл pom, как описано в руководстве. Теперь ПОМ файл выглядит следующим образом:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 

    <modelVersion>4.0.0</modelVersion> 
    <groupId>org.sigmaps</groupId> 
    <artifactId>afrodita</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
    <packaging>play2</packaging> 

    <name>Afrodita</name> 

    <repositories> 
     <repository> 
      <id>typesafe</id> 
      <name>Typesafe - releases</name> 
      <url>http://repo.typesafe.com/typesafe/releases/</url> 
      <snapshots> 
       <enabled>false</enabled> 
      </snapshots> 
     </repository> 
    </repositories> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 

     <play2.version>2.3.3</play2.version> 
     <scala.version>2.10.4</scala.version> 

     <play2.plugin.version>1.0.0-alpha8</play2.plugin.version> 
     <sbt-compiler.plugin.version>1.0.0-beta4</sbt-compiler.plugin.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.scala-lang</groupId> 
      <artifactId>scala-library</artifactId> 
      <version>${scala.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>com.typesafe.play</groupId> 
      <artifactId>play_2.10</artifactId> 
      <version>${play2.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>com.typesafe.play</groupId> 
      <artifactId>play-java_2.10</artifactId> 
      <version>${play2.version}</version> 
     </dependency> 


    </dependencies> 

    <build> 
     <sourceDirectory>${basedir}/app</sourceDirectory> 
     <resources> 
      <resource> 
       <directory>${basedir}/conf</directory> 
      </resource> 
      <resource> 
       <directory>${basedir}</directory> 
       <includes> 
        <include>public/**</include> 
       </includes> 
      </resource> 
     </resources> 

     <plugins> 
      <plugin> 
       <groupId>com.google.code.play2-maven-plugin</groupId> 
       <artifactId>play2-maven-plugin</artifactId> 
       <version>${play2.plugin.version}</version> 
       <extensions>true</extensions> 
      </plugin> 
     </plugins> 
    </build> 

В IntelliJ Idea, на проекты Maven вкладка я нажимаю плагины => play2 => paly2: запустить

А потом выдаст ошибку:

[INFO] [play2:run {execution: default-cli}] 
[INFO] ------------------------------------------------------------------------ 
[ERROR] FATAL ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] null 
[INFO] ------------------------------------------------------------------------ 
[INFO] Trace 
java.lang.NullPointerException 
    at com.google.code.play2.plugin.AbstractPlay2ServerMojo.getProjectClassPath(AbstractPlay2ServerMojo.java:151) [INFO] Scanning for projects... 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building Afrodita 
[INFO] task-segment: [com.google.code.play2-maven-plugin:play2-maven-plugin:1.0.0-alpha8:run] 
[INFO] ------------------------------------------------------------------------ 
[INFO] [play2:run {execution: default-cli}] 
[INFO] ------------------------------------------------------------------------ 
[ERROR] FATAL ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] null 
[INFO] ------------------------------------------------------------------------ 
[INFO] Trace 
java.lang.NullPointerException 
    at com.google.code.play2.plugin.AbstractPlay2ServerMojo.getProjectClassPath(AbstractPlay2ServerMojo.java:151) 
    at com.google.code.play2.plugin.AbstractPlay2ServerMojo.prepareAntJavaTask(AbstractPlay2ServerMojo.java:70) 
    at com.google.code.play2.plugin.AbstractPlay2RunMojo.internalExecute(AbstractPlay2RunMojo.java:91) 
    at com.google.code.play2.plugin.AbstractPlay2Mojo.execute(AbstractPlay2Mojo.java:139) 
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) 
    at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) 
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) 
    at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) 
    at org.codehaus.classworlds.Launcher.main(Launcher.java:375) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 2 seconds 
[INFO] Finished at: Wed Sep 24 12:41:25 MSK 2014 
[INFO] Final Memory: 14M/299M 
[INFO] ------------------------------------------------------------------------ 

Process finished with exit code 1 
    at com.google.code.play2.plugin.AbstractPlay2ServerMojo.prepareAntJavaTask(AbstractPlay2ServerMojo.java:70) 
    at com.google.code.play2.plugin.AbstractPlay2RunMojo.internalExecute(AbstractPlay2RunMojo.java:91) 
    at com.google.code.play2.plugin.AbstractPlay2Mojo.execute(AbstractPlay2Mojo.java:139) 
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) 
    at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) 
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) 
    at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) 
    at org.codehaus.classworlds.Launcher.main(Launcher.java:375) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 

Тогда я пытаюсь SBT-компилятор => SBT-составитель: компилировать, и это дает мне еще одну ошибку:

[INFO] Building Afrodita 
[INFO] task-segment: [com.google.code.sbt-compiler-maven-plugin:sbt-compiler-maven-plugin:1.0.0-beta4:compile] 
[INFO] ------------------------------------------------------------------------ 
[INFO] [sbt-compiler:compile {execution: default-cli}] 
[INFO] ------------------------------------------------------------------------ 
[ERROR] FATAL ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] An invalid artifact was detected. 

This artifact might be in your project's POM, or it might have been included transitively during the resolution process. Here is the information we do have for this artifact: 

    o GroupID:  <<<MISSING>>> 
    o ArtifactID: sbt-compiler-sbt0135 
    o Version:  <<<MISSING>>> 
    o Type:  jar 

[INFO] ------------------------------------------------------------------------ 
[INFO] Trace 
org.apache.maven.artifact.InvalidArtifactRTException: For artifact {null:sbt-compiler-sbt0135:null:jar}: The groupId cannot be empty. 
    at org.apache.maven.artifact.DefaultArtifact.validateIdentity(DefaultArtifact.java:129) 
    at org.apache.maven.artifact.DefaultArtifact.<init>(DefaultArtifact.java:122) 
    at org.apache.maven.artifact.factory.DefaultArtifactFactory.createArtifact(DefaultArtifactFactory.java:158) 
    at org.apache.maven.artifact.factory.DefaultArtifactFactory.createArtifact(DefaultArtifactFactory.java:117) 
    at org.apache.maven.artifact.factory.DefaultArtifactFactory.createArtifact(DefaultArtifactFactory.java:111) 
    at org.apache.maven.artifact.factory.DefaultArtifactFactory.createArtifact(DefaultArtifactFactory.java:40) 
    at com.google.code.sbt.compiler.plugin.AbstractSBTCompileMojo.getResolvedArtifact(AbstractSBTCompileMojo.java:547) 
    at com.google.code.sbt.compiler.plugin.AbstractSBTCompileMojo.getWellKnownSbtCompiler(AbstractSBTCompileMojo.java:685) 
    at com.google.code.sbt.compiler.plugin.AbstractSBTCompileMojo.getSbtCompiler(AbstractSBTCompileMojo.java:635) 
    at com.google.code.sbt.compiler.plugin.AbstractSBTCompileMojo.internalExecute(AbstractSBTCompileMojo.java:287) 
    at com.google.code.sbt.compiler.plugin.SBTCompileMojo.internalExecute(SBTCompileMojo.java:102) 
    at com.google.code.sbt.compiler.plugin.AbstractSBTCompileMojo.execute(AbstractSBTCompileMojo.java:247) 
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) 
    at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) 
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) 
    at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) 
    at org.codehaus.classworlds.Launcher.main(Launcher.java:375) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 

Если я пытаюсь запустить проект с активатором, это работает нормально. Что я делаю, чтобы решить эту проблему и запустить проект с maven и без SBT?

ответ

0

play2:run цель имеет параметр executedProject, который является необязательным. Без того, чтобы когда-либо использовать play2, я предполагаю, что это не тот случай, когда цель предполагает это. Вы видите, какое значение оно действительно задано, если вы запустите mvn ... -e -X (чтобы печатать ошибки и информацию об отладке)?

0

Первая проблема (с play2) - в 1.0.0-alpha9 сообщение об ошибке было улучшено, теперь оно говорит, что делать в этом случае. Это часть вопроса https://code.google.com/p/play2-maven-plugin/issues/detail?id=29, см. Последний комментарий.

Вторая проблема (с sbt-компилятором) была исправлена ​​в 1.0.0-beta5 - см. Вопрос https://code.google.com/p/sbt-compiler-maven-plugin/issues/detail?id=14.

Смежные вопросы