SBTdependOnRootProject:不编译依赖项 [英] SBT dependsOn RootProject: doesn't compile the dependency
问题描述
我有一个非常简单的配置:
I have a pretty simple configuration:
//lazy val bananaRdfProject = RootProject( uri("git://github.com:stample/banana-rdf.git#"+bananaGitBranch) )
// lazy val bananaRdfProject = RootProject( uri("https://github.com/stample/banana-rdf.git#"+bananaGitBranch) )
// lazy val bananaRdfProject = ProjectRef( uri("https://github.com/stample/banana-rdf.git#"+bananaGitBranch) ,"banana-rdf")
lazy val bananaRdfProject = RootProject( file("../banana-rdf") )
lazy val main = play.Project(appName, appVersion, appDependencies).settings(...)
.dependsOn( bananaRdfProject )
我尝试将上面的4个不同的项目声明用于bananaRdfProject.
I tried using the 4 different project declarations above for bananaRdfProject.
因为我可以在本地编辑banana-rdf,所以我希望每次构建游戏项目时都重新编译它,这样就不必发布banana-rdf ...
As I may edit this banana-rdf locally, I want it to be recompiled each time I build my play project, so that I do not have to publish the banana-rdf...
但是当我尝试编译使用banana-rdf的主播放项目时,它不会编译banana-rdf,而是尝试编译主项目:编译失败,因为classpath中缺少banana-rdf类
But when I try to compile my main play project, that uses banana-rdf, it doesn't compile banana-rdf, but tries to compile the main project: the compilation fails because banana-rdf classes are missing in the classpath.
sebastien@clemence-XPS-L412Z:rww-play (master *%)$ ./play.old/play
[info] Loading project definition from /home/sebastien/Bureau/rww-play/project
[warn] there were 1 deprecation warning(s); re-run with -deprecation for details
[warn] one warning found
[info] Loading project definition from /home/sebastien/Bureau/banana-rdf/project
[info] Updating {file:/home/sebastien/Bureau/banana-rdf/project/}banana-rdf-build...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Compiling 2 Scala sources to /home/sebastien/Bureau/banana-rdf/project/target/scala-2.10/sbt-0.13/classes...
[warn] there were 11 deprecation warning(s); re-run with -deprecation for details
[warn] there were 2 feature warning(s); re-run with -feature for details
[warn] two warnings found
[info] Set current project to RWWeb (in build file:/home/sebastien/Bureau/rww-play/)
_
_ __ | | __ _ _ _
| '_ \| |/ _' | || |
| __/|_|\____|\__ /
|_| |__/
play 2.2-TLS built with Scala 2.10.3-RC3 (running Java 1.7.0_45), http://www.playframework.com
> Type "help play" or "license" for more information.
> Type "exit" or use Ctrl+D to leave this console.
[RWWeb] $ compile
[info] Updating {file:/home/sebastien/Bureau/banana-rdf/}banana...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Updating {file:/home/sebastien/Bureau/rww-play/}RWWeb...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Compiling 53 Scala sources and 1 Java source to /home/sebastien/Bureau/rww-play/target/scala-2.10/classes...
[error] /home/sebastien/Bureau/rww-play/app/controllers/CORSProxy.scala:4: object banana is not a member of package org.w3
[error] import org.w3.banana.plantain.Plantain
[error] ^
[error] /home/sebastien/Bureau/rww-play/app/controllers/CORSProxy.scala:7: not found: type Plantain
[error] object CORSProxy extends org.www.readwriteweb.play.CORSProxy[Plantain](webClient)
.................
在尝试编译我的主项目之前,不是应该先编译banana-rdf吗?如果没有,那么依赖外部RootProject有什么意义?
Isn't it supposed to compile banana-rdf before trying to compile my main project? If not, what is the point of depending on an external RootProject?
推荐答案
RootProject(file("../banana-rdf"))
项目引用仅引用根项目,而您真正需要的是对banana-rdf
子项目的引用(在rdf
子目录中).
The RootProject(file("../banana-rdf"))
project reference just references the root project, and what you really need is a reference to the banana-rdf
subproject (in the rdf
subdirectory).
可用的子项目在 https://github.com/w3c/banana中定义-rdf/blob/master/project/build.scala .有一些:
The available subprojects are defined in https://github.com/w3c/banana-rdf/blob/master/project/build.scala. There are a few:
[main]> projects
[info] In file:/Users/jacek/sandbox/stackoverflow/19832655/
[info] * main
[info] In https://github.com/w3c/banana-rdf.git
[info] banana
[info] banana-jena
[info] banana-rdf
[info] banana-rdf-test-suite
[info] banana-sesame
[info] examples
[info] experimental
[info] ldp
[info] patch
要引用banana-rdf
,则应使用以下ProjectRef
指向构建配置中的正确模块(子项目).注意ProjectRef
以及子项目的名称-banana-rdf
.
To reference banana-rdf
you should then use the following ProjectRef
pointing at a right module (subproject) in a build configuration. Note ProjectRef
as well as the name of the subproject - banana-rdf
.
lazy val bananaRdfProject =
ProjectRef(uri("https://github.com/w3c/banana-rdf.git"), "banana-rdf")
使用ProjectRef
,您应该能够解析banana-rdf
子项目中定义的任何类型.
With the ProjectRef
you should be able to resolve any types defined in the banana-rdf
subproject.
这篇关于SBTdependOnRootProject:不编译依赖项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!