我使用Maven设置了一个play2项目,就像在this example中一样,根据play2-maven-plugin的官方文档进行了调整,以适应Play2.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没有显示任何错误。但是,我必须避免接触managed sources文件夹,并避免打开其中的任何生成的源文件,即使只是为了查看它们,因为还会有其他的引用问题,这些问题实际上并不存在,但它们存在是因为IDEA不能确定它是一个Play2项目。在命令行上执行mvn package play2:run
时,应用程序会启动并按预期工作。
不幸的是,我现在必须使用Maven,因为它是一个有许多子模块的大型Maven项目,我不能在几个小时/几天内切换到SBT。
那么,有什么关于如何正确使用它并获得识别我的项目为Play2的想法的建议吗?当我选择Build/Rebuild Project
或Make module
时,是否可以自动运行play2:resources-compile
目标
发布于 2015-04-28 23:23:22
使用example projects中的一个而不是this。
我使用的是ScalaIDE,但我已经测试过Idea集成,它可以正常工作。导入Maven项目,添加Scala支持,重新构建。
https://stackoverflow.com/questions/29917155
复制相似问题