2012-05-02 23 views
7

Bir scala derleyici projem var.Bazı test durumları oluşturulan jar dosyasına bağlı Bu nedenle, "test" i çalıştırmadan önce her zaman "paket" görevini el ile çalıştırıyorum görev 0.12 sbt ben "test" işini yapacak ama "paket" bağlı olacaktır bir SBT görev eklemek nasıl"Test" öncesi "paket" nasıl çalıştırılır

cevap

7

:.?

proje ayarlarında aşağıdaki ekleyin :

(test in Test) <<= (test in Test) dependsOn (Keys.`package` in Compile) 

Bu, projenizin test görevini değiştirir. Ama aynı zamanda kendi görev tanımlayabilirsiniz:

val myTestTask = TaskKey[Unit]("my-test-task", "runs package and then test") 

Ve sonra proje ayarlarına bu ekleyin:

myTestTask <<= (test in Test) dependsOn (Keys.`package` in Compile) 

0,13 sbt:

proje ayarlarında aşağıdaki ekleyin:

(test in Test) := { 
    (Keys.`package` in Compile).value 
    (test in Test).value 
} 

Bu, s için test görevini değiştirir. ur projesi. Ama aynı zamanda kendi görev tanımlayabilirsiniz:

val myTestTask = taskKey[Unit]("runs package and then test") 

Ve sonra proje ayarlarına bu ekleyin:

myTestTask := { 
    (Keys.`package` in Compile).value 
    (test in Test).value 
} 
+0

hata 'build.sbt aşağıdaki alıyorum: 21: hata: eof 'bekleniyordu ancak paketi 'found.' '(Testte test edin) << = (Testte test edin) dependsOn package' – dips

+1

Bunu' (testte test et) 'e değiştirmem gerekiyordu << = (testte test et) dependsOn (Keys. \ '' paketinde 'derleme ''. Bu her zamanki yol mu, yoksa benim düzenime özgü bir şey mi? '' 'Tuşlarının kullanılmamasının bana hata verdiğini ve paketin referansının belirsiz olduğunu unutmayın. Aynı kapsamda iki kez içe aktarılır, Keys._sucu içe aktarılır ve sbt._'s içe aktarılır. – dips

+2

@dips Scala'nın 'paketi' anahtar kelimesiyle yapılan talihsiz bir çakışmadır. –

İlgili konular