Sometimes you have to use the Scope declarations when you get the uninitialized error. For instance:
(someTask in Compile) <<= (someTask in Compile).dependsOn(yourTask)
Something like that. But in a lot of cases, you can just add to existing settings which contain (say) a list of resource directories, and then they get copies (or whatever) the same time the stock stuff does.
I often do this, for instance:
cleanFiles <<= (cleanFiles, baseDirectory) {
(files, basedir) =>
files ++ Seq(new File(basedir, "/path/to/extra/stuff"))
}
It's all confusing at first, IMHO. You can use inspect to find all these settings, the dependencies part of the output from inspect to trace where the settings might come from, and then just flail.
Keith