我正在学习gradle工具api。
我需要写两种方法。一个将调用build.gradle
文件中定义的所有任务(定义了10个以上的任务)和另一个我可以指定任务名称的任务。(如清理,构建等)
我有两种方法,只有一行代码不同。 我需要你的建议,我们如何重构这些方法,避免代码重复。
第一种方法。将执行build.gradle
中的所有任务public boolean buildProject() {
ProjectConnection connection = connector.connect();
BuildLauncher build = connection.newBuild();
try {
build.run();// by default it executes all tasks
}finally {
connection.close();
}
return true;
}
第二种方法只会执行指定的任务
public boolean buildSpecificTask(String ...tasks ) {
ProjectConnection connection = connector.connect();
BuildLauncher build = connection.newBuild();
build.forTasks(tasks);
try {
build.run();
}finally {
connection.close();
}
return true;
}
只有build.forTasks(tasks);
答案 0 :(得分:4)
public boolean build(String ...tasks) {
ProjectConnection connection = connector.connect();
BuildLauncher build = connection.newBuild();
if (tasks.length > 0) {
build.forTasks(tasks);
}
try {
build.run();
}finally {
connection.close();
}
return true;
}
答案 1 :(得分:3)
如果build.forTasks()被设计为在传递空数组时不执行任何操作,那么您不需要两种方法。第二种方法中的参数列表显示String... tasks
,表示零个或多个String参数。当参数的数量为零时,则任务等于空数组。
如果build.forTasks使用空数组执行某些操作,请查看是否可以对该情况执行任何操作;那么你只需要一个buildProject方法。