2010-08-05 11 views
5

SBT a déclenché l'exécution si j'exécuter une commande commeModification watchpaths

~test 

Il exécute tous les tests et attend des changements de source. Je veux étendre ce comportement pour obtenir une exécution déclenchée chaque fois que les fichiers d'entrée sont modifiés. Tous les fichiers d'entrée existent dans un seul dossier. Pour y parvenir, j'ai créé un fichier dans scala project/build dossier:

import sbt._ 

class ExtendedProject(info: ProjectInfo) extends DefaultProject(info) 
{ 
    override def watchPaths = (mainSources +++ testSources +++ mainResources 
          +++ testResources) \ "d:\\...path to folder" 
} 

mais quand j'exécute rien de commande de test arrive! Appelant ~test attend un certain temps et puis quitte sans aucune sortie. Est-ce parce que SBT s'attend à ce que tous les autres paramètres soient outrepassés? Est-il possible de spécifier watchPaths dans le fichier build.properties?

+0

Ne pas vous dire _SBT_ a déclenché l'exécution? –

+0

oh oui, j'ai utilisé le nom impropre par erreur, mis à jour le poste. Merci d'avoir corrigé. – thequark

Répondre

2

essayer celui-ci:

override def watchPaths = mainSources +++ testSources +++ mainResources +++ testResources +++ Path.fromFile("/path/to/your/dir") 
+0

merci beaucoup Piotr, je suis capable de modifier watchPaths pour inclure le dossier. Une autre question. Est-il possible pour moi de spécifier les extensions de fichier à surveiller. Dans le même répertoire, il peut y avoir différents fichiers, je veux en regarder seulement quelques-uns en fonction de l'extension du fichier. – thequark

+0

oui, c'est. Regardez le code ci-dessous. Il utilise FileFilter pour filtrer les fichiers que vous ne voulez pas vérifier. val myfilter = new FileFilter { def accept(f:File) = f.getName.endsWith(".log") } override def watchPaths = mainSources +++ testSources +++ mainResources +++ testResources +++ (Path.fromFile("/Path/to/dir") * myfilter)