Scala 如何定义新设置并为任务设置其值?
我有一个Scala 如何定义新设置并为任务设置其值?,scala,sbt,Scala,Sbt,我有一个myTask任务,它调用其他任务,如下所示: def myTask = Task <<= (Task1, Task2, Task3) map {(_,_,_)=>;} 一切正常 我现在需要的是创建另一个任务myTask2,该任务类似于myTask,但我想使用为tcWebApp设置的另一个目录来调用此任务,也就是说,该设置应该为任务设置另一个值。可能吗 我试过类似的方法 tcWebApp in myTask2 := file("newDir") 但它不起作用。请给出
myTask
任务,它调用其他任务,如下所示:
def myTask = Task <<= (Task1, Task2, Task3) map {(_,_,_)=>;}
一切正常
我现在需要的是创建另一个任务myTask2
,该任务类似于myTask
,但我想使用为tcWebApp
设置的另一个目录来调用此任务,也就是说,该设置应该为任务设置另一个值。可能吗
我试过类似的方法
tcWebApp in myTask2 := file("newDir")
但它不起作用。请给出建议。当你写:
`tcWebApp in myTask2` := ...
这并不意味着“当myTask2执行时,tcWebApp具有以下值”,正如您所希望的那样。它的意思是,“如果有人问myTask2它对tcWebApp有什么价值,它会回答如下。”它对tcWebApp的全局价值没有任何影响;如果没有人问过myTask2
tcWebApp的值是多少,那么在该任务中设置它就没有任何效果。因此,Task1
将继续使用tcWebApp
的全局值
我发现了一些关于堆栈溢出的相关问题:
Task1
和Task2
作为任务重用,不如重用其中的代码。让Task1
和Task2
调用您定义的普通方法,然后让myTask2
调用相同的方法,传递不同的参数。换句话说,不要试图解决你的设置问题;用普通的Scala代码解决它
或者,你可以采取另一种方法。如果将
myTask2
设置为命令而不是任务,则可以随心所欲。请参阅其中的“命令可以查看或修改其他sbt设置”。感谢您的回复。事实上这不是我想要的。我有一些任务:Taks1、Task2等。
任务采用build.sbt中定义的配置变量,在您的示例中是mySetting
。我还有myTask2
,它正在调用Task1,Task2等。
当我调用myTask2
时,我想在Task1,Task2中有其他mySetting
类似的东西:myTask2(Task1(myTask中的mySetting))
啊,我现在明白了。答案完全重写了。
`tcWebApp in myTask2` := ...