2014-06-19 20 views
10

Bu benim proje/Build.scala geçerli:Neden sbt konsolu çoklu modül projesinde alt projeden paketleri göremiyor?

package sutils 

import sbt._ 
import Keys._ 

object SutilsBuild extends Build { 

    scalaVersion in ThisBuild := "2.10.0" 

    val scalazVersion = "7.0.6" 

    lazy val sutils = Project(
    id = "sutils", 
    base = file(".") 
).settings(
    test := { }, 
    publish := { }, // skip publishing for this root project. 
    publishLocal := { } 
).aggregate(
    core 
) 

    lazy val core = Project(
    id = "sutils-core", 
    base = file("sutils-core") 
).settings(
    libraryDependencies += "org.scalaz" % "scalaz-core_2.10" % scalazVersion 
) 
} 

Bu benim projem sadece iyi derleme gibi görünüyor, ama ben konsol içine gittiğinizde, sadece var kodun herhangi alamıyor derlenmiş ?!

$ sbt console 
scala> import com.github.dcapwell.sutils.validate.Validation._ 
<console>:7: error: object github is not a member of package com 
     import com.github.dcapwell.sutils.validate.Validation._ 

Burada yanlış yapıyorum? kullanımına bakmak için çalışıyorum, ben projenin sınıfları console görevi başlatmak için Alexey-Romanov @ gelen konsolda

$ sbt about 
[info] Loading project definition from /src/sutils/project 
[info] Set current project to sutils (in build file:/src/sutils/) 
[info] This is sbt 0.13.1 
[info] The current project is {file:/src/sutils/}sutils 0.1-SNAPSHOT 
[info] The current project is built against Scala 2.10.3 
[info] Available Plugins: org.sbtidea.SbtIdeaPlugin 
[info] sbt, sbt plugins, and build definitions are using Scala 2.10.3 
+3

Her zaman sbt dikişlerini/konsollarını yazabilirsiniz. –

cevap

14

çözüm var iken yüklemek için hangi alt proje söylemek için bir yol görmüyorum ithalat içindedir.

sbt sutils/console 

ancak diğer core bağlıdır kök sutils projeyi yapan başka çözüm yoktur. Projeyi kurmak için aşağıdaki kod parçasını kullanın: core projesinden sınıfları sutils 'un ad alanına getirecek dependsOn core not edin. İki build.sbt s yapı bölmek istiyorum ne zaman

scalaVersion in ThisBuild := "2.10.0" 

val scalazVersion = "7.0.6" 

lazy val sutils = project.in(file(".")).settings(
    test := {}, 
    publish := {}, // skip publishing for this root project. 
    publishLocal := {} 
).aggregate(core).dependsOn(core) 

lazy val core = Project(
    id = "sutils-core", 
    base = file("sutils-core") 
).settings(
    libraryDependencies += "org.scalaz" %% "scalaz-core" % scalazVersion 
) 

Sen daha da kolaylaştırmak olabilir, her şöyledir:

lazy val sutils = Project(
    id = "sutils", 
    base = file(".") 
).settings(
    test := { }, 
    publish := { }, // skip publishing for this root project. 
    publishLocal := { } 
).aggregate(
    core 
).dependsOn core 

BTW, gerçekten kullanım durumu için build.sbt daha basit kullanmalıdır projeler.