0
내 플러그인 코드에서 gradle 작업을 실행하고 싶습니다.gradle 작업을 수행하는 방법
어느 누구도 나를 제안 할 수 있습니다. 프로그래밍 방식으로 코드에서 gradle 작업을 수행하는 방법은 무엇입니까?
감사합니다. Sumeet. 이
project.tasks.<taskname>.execute()
비슷한 수 있습니다 플러그인 코드에 따라서
task a {
doLast {
println 'test'
}
}
task b {
doLast {
a.execute()
}
}
을 다음 그러나 이것은 미래에 변경 될 수로
안녕 마틴, 먼저 내 질문에 대한 응답 주셔서 감사합니다. 귀하가 제공 한 솔루션을 적용하려하지만 현재로서는 성공하지 못했습니다. Project (com.intellij.openapi.project.Project)의 인스턴스를 사용한 다음 해당 인스턴스에서 작업을 호출하려고했지만 프로젝트 인스턴스에서 작업을 가져올 수 없습니다. 당신이 당신의 솔루션에 어떤 프로젝트 수업을 추천했는지 정확하게 알려주시겠습니까? – sumeet
인스턴스가 정확합니다. 어쩌면 당신이 그것을 부를 당시의 작업은 아직 그 시간에 사용할 수 없습니다. 코드를 보지 않고도 동일하게 어려움. 'project.tasks.findByName (name)'을 호출하여 그것을 검색해보십시오. null을 돌려 주면,'gradle.taskGraph.whenReady {taskGraph -> project.tasks.findByName (name) }' –
클래스 MyAction extends AnAction { } 내에서 호출하는 것과 같이 다른 시간에 시도해보십시오. public void actionPerformed (AnActionEvent anActionEvent) { mProject = anActionEvent.getProject(); 경로 = mProject.getBasePath(); ApplicationManager.getApplication(). runWriteAction (runTasks()); } 의 Runnable runTasks() {반환 새의 Runnable() { 공공 무효 실행() { CommandProcessor.getInstance(). ExecuteCommand를 (mProject, 새의 Runnable() {공공 무효 실행() { 시도 { 목록 작업 = 새로운 ArrayList를 (); 문자열 여기서 taskname = Constant.MY_TASK, tasks.add (여기서 taskname). mProject } 여기에 내가 마지막 줄에 mProject 인스턴스에서 작업을 받고 있지 않다는 ... –
sumeet