0
A
回答
1
在插件代碼如下如此
task a {
doLast {
println 'test'
}
}
task b {
doLast {
a.execute()
}
}
它可能是類似於
project.tasks.<taskname>.execute()
的東西,但是這可能會在未來改變你可以做到這一點。你應該依賴任務的鏈接,而不是直接調用它們。
嗨馬丁,首先感謝回答我的問題。我正在嘗試應用您提供的解決方案,但目前尚未成功。我已經使用了Project(com.intellij.openapi.project.Project)的實例,然後嘗試調用該實例上的任務,但無法在項目實例上獲取任務。您能否確認您確切知道您的解決方案中涉及哪個項目類。 – sumeet
該實例是正確的。也許當時你所說的任務尚不可用。沒有看到代碼很難相同。嘗試通過調用'project.tasks.findByName(name)'查找它。如果它返回null,那麼在不同的時間嘗試它,就像在'gradle.taskGraph.whenReady {taskGraph - > project.tasks.findByName(name) }中調用它'' –
class MyAction extends AnAction {public void actionPerformed(AnActionEvent anActionEvent ){ mProject = anActionEvent.getProject(); path = mProject.getBasePath(); ApplicationManager.getApplication()。runWriteAction(runTasks()); } 的Runnable runTasks(){ 返回新的Runnable(){ 公共無效的run(){ CommandProcessor.getInstance()。executeCommand(mProject,新的Runnable(){公共無效的run(){ 嘗試{ 名單任務=新的ArrayList (); 字符串TASKNAME = Constant.MY_TASK; tasks.add(TASKNAME); mProject }這裏我不是在最後一行越來越任務上mProject實例... –
sumeet