2014-02-12 80 views
1

我试图添加一个非播放Java项目作为子项目。主项目是Play Java应用程序,子项目与主项目位于同一目录中。我遵循给予here的指示。我build.sbt看起来像Play Framework 2.2.1 - 添加非播放Java项目作为子项目

import play.Project._ 

name := "main-project" 

version := "1.0" 

libraryDependencies ++= Seq(javaJdbc, javaEbean) 

playJavaSettings 

lazy val mainProject = project.in(file(".")) 
    .aggregate(subProject) 
    .depends(subProject) 

lazy val subProject = project.in(file("../sub-projects/sub-project-1")) 

这里是我的目录结构

D: 
|-- projects 
| |-- main-project 
| |-- sub-projects 
| | | |-- sub-project-1 
| | | |-- sub-project-2 

当我尝试编译主体工程,我得到以下错误。

[info] Loading project definition from D:\projects\main-project\project 
D:\projects\main-project\build.sbt:13: error: value depends is not a member of sbt.Project 
possible cause: maybe a semicolon is missing before `value depends'? 
.depends(subProject) 
^ 
[error] sbt.compiler.EvalException: Type error in expression 
[error] Use 'last' for the full log. 
+1

我已经提交pull请求来修复损坏的文档和示例:https://github.com/playframework/playframework/pull/ 2453 –

回答

1

它应该是dependsOn而不是depends

你也应该指向从文件夹根两个项目:

name := "java-test" 

version := "1.0-SNAPSHOT" 

playJavaSettings 

lazy val mainProject = project.in(file(".")) 
    .aggregate(subProject, playProject) 
    .dependsOn(subProject, playProject) 


lazy val subProject = project.in(file("sub-projects/sub-project-1")) 

//play project depends on subProject... 
lazy val playProject = project.in(file("play-project")).dependsOn(subProject) 
+0

它解决了我发布的错误。但该项目仍然没有编译。我在主项目中使用子项目包,当我编译时,它说,“包org.subproject.package不存在”。 build.sbt是否有进一步的改动? – waqas

+0

如果'playProject'需要'subProject'中的某些东西,则需要定义该依赖:'playProject = project.in(...)。dependsOn(subProject)'。我已经更新了答案。 –

+0

不起作用。我收到了同样的错误。另一件事是没有“java测试”。只有两个项目。播放项目和另一个非播放项目。 Play项目使用非play项目中的类。非玩项目是一个没有build.sbt的标准eclipse项目。 – waqas

相关问题