Gradle 无任务梯度同步
这与安卓系统无关,也与我在谷歌上搜索“gradlesync命令”的一切无关 我想同步几个目录。有效的是Gradle 无任务梯度同步,gradle,build.gradle,Gradle,Build.gradle,这与安卓系统无关,也与我在谷歌上搜索“gradlesync命令”的一切无关 我想同步几个目录。有效的是 task mysync1 { dependsOn dep1, dep2, ... from "src1" into "dst1" } task mysync2 { dependsOn dep1, dep2, ... from "src2" into "dst2" } ... task mysync { depends on mysync1
task mysync1 {
dependsOn dep1, dep2, ...
from "src1"
into "dst1"
}
task mysync2 {
dependsOn dep1, dep2, ...
from "src2"
into "dst2"
}
...
task mysync {
depends on mysync1, mysync2, ....
}
但我讨厌创建我永远不会手动调用的任务(尤其是它会使梯度任务的输出变得混乱)。所以我试过了
task mysync {
dependsOn dep1, dep2, ...
doLast {
sync {
from "src1"
into "dst1"
}
sync {
from "src2"
into "dst2"
}
...
}
}
但我得到了错误
Could not find method from() for arguments [src1] on task ':mysync'.
有解决办法吗?这是个坏主意吗
它是如何与copy
一起工作的
如何找出sync
块中允许的内容(我只能找到sync
任务)
为什么它与复制一起工作
它之所以有效,是因为它是注释中提到的方法
有解决办法吗
是的,有一个使用任务的解决方案,因为没有名为sync
的方法
task megasync(){
dependsOn dep1,dep2。。。。
['src1':'dest1','src2':'dest2',…]每个{
src,dest->
任务同步(类型:同步,覆盖:真){
来自src
进入目的地
}
sync.execute()
}
}
另一个解决方案是创建一个名为sync的方法,该方法执行sync
任务(同样,overwrite
必须设置为true
)
此外,如果要对每个同步操作使用“保留”属性,则在表示列表的方式中需要一些变通方法。可能是,['src1':['dest1','preserve_variables..],'src2':…]
如何找出同步块中允许的内容?
我尝试执行以下任务:
我查看了stacktrace,发现sync
是中的一个方法,它有一个返回值。也许,这就是执行print
的原因,错误找不到方法sync()
没有引发,而是因为没有返回有效对象而引发了NPE
。
为什么它与复制一起工作
它之所以有效,是因为它是注释中提到的方法
有解决办法吗
是的,有一个使用任务的解决方案,因为没有名为sync
的方法
task megasync(){
dependsOn dep1,dep2。。。。
['src1':'dest1','src2':'dest2',…]每个{
src,dest->
任务同步(类型:同步,覆盖:真){
来自src
进入目的地
}
sync.execute()
}
}
另一个解决方案是创建一个名为sync的方法,该方法执行sync
任务(同样,overwrite
必须设置为true
)
此外,如果要对每个同步操作使用“保留”属性,则在表示列表的方式中需要一些变通方法。可能是,['src1':['dest1','preserve_variables..],'src2':…]
如何找出同步块中允许的内容?
我尝试执行以下任务:
我查看了stacktrace,发现sync
是中的一个方法,它有一个返回值。也许,这就是执行print
的原因,错误找不到方法sync()
没有引发,而是因为没有返回有效对象而引发了NPE
。
项目中有一个copy()方法。没有方法sync()@这解释了为什么我找不到任何文档:但是,sync{…}
做什么呢?不幸的是,这就是我对groovy魔力的理解停止的地方。我所能说的是,用blabla替换它会让gradle抱怨缺少blabla方法。但我在任何地方都找不到任何记录的sync方法。Project中有一个copy()方法。没有方法sync()@这解释了为什么我找不到任何文档:但是,sync{…}
做什么呢?不幸的是,这就是我对groovy魔力的理解停止的地方。我所能说的是,用blabla替换它会让gradle抱怨缺少blabla方法。但我在任何地方都找不到任何记录的同步方法。
task test{
sync{
print "Testing" // This executes, but NPE is raised for `sync` on
// some other default sync methods
}
}