【问题标题】:How to correctly use play2 with maven, play2-maven-plugin and IDEA?如何正确使用play2与maven、play2-maven-plugin和IDEA?
【发布时间】:2015-04-28 10:41:00
【问题描述】:

我在this example 中使用Maven 设置了一个play2 项目,根据play2-maven-plugin 的官方文档适应了Play 2.4。我正在使用 IntelliJ IDEA。

现在我有一个简单的控制器:

object FooController extends Controller {
  val foo = Action {
    Ok("foo")
  }

  val bar = Action {
    Redirect(routes.FooController.foo())
  }
}

我的routes 文件包含:

GET /foo    controllers.FooController.foo
GET /bar    controllers.FooController.bar

现在,我遇到了几个问题。

第一个问题是FooController 没有找到routes。我必须在命令行上手动执行mvn play2:routes-compile 才能生成路由,但它们位于名为target/src_managed/main 的排除目录中。为了让它们在范围内,我必须像这样使用build-helper-maven-plugin

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>${build-helper-maven-plugin.version}</version>
    <executions>
        <execution>
            <phase>process-sources</phase>
            <goals><goal>add-source</goal></goals>
            <configuration>
                <sources>
                    <source>${project.build.directory}/src_managed/main</source>
                </sources>
            </configuration>
        </execution>
    </executions>
</plugin>

在我再次执行mvn clean play2:routes-compile 之后,路由工作,IDEA 没有显示错误。但是,我必须避免触摸托管源文件夹,并避免打开其中的任何生成的源文件,即使只是为了查看它们,因为会有其他参考问题确实不存在,但它们存在是因为 IDEA 没有计算它是一个 Play2 项目。在命令行上执行mvn package play2:run 时,应用程序启动并按预期工作。

不幸的是,我目前必须使用 Maven,因为它是一个包含许多子模块的大型 Maven 项目,我无法在几小时/几天内更改为 SBT。

那么,对于如何正确使用它并让 IDEA 将我的项目识别为 Play2 有什么建议吗?当我选择Build/Rebuild ProjectMake module 时,是否可以自动运行play2:resources-compile 目标?

【问题讨论】:

    标签: scala maven intellij-idea playframework


    【解决方案1】:

    使用example projects 之一代替this

    我使用 ScalaIDE,但我已经测试过 Idea 集成并且它可以工作。导入 Maven 项目,添加 Scala 支持,重建。

    【讨论】:

    • 我根据你的多模块示例检查了我的项目,确实我的播放模块的 pom 看起来几乎相同,唯一不同的是我有 build-helper-maven-plugin 它将 src_managed/main 文件夹添加为源文件夹和routes-compilegenerate-sources 阶段的显式规范。我认为这是 IDEA 的问题。由于我计划在不久的将来切换到 sbt,所以我现在可以忍受它。
    • 我刚刚创建了关于IDEA integration的wiki页面
    • play2 打包负责将target/src_managed/main 目录添加为附加源根目录。你可以删除build-helper-maven-plugin
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-16
    • 2013-12-18
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    • 2013-09-29
    • 2015-06-01
    相关资源
    最近更新 更多