2016-07-19 17 views
0

我需要在完成'copySrcToTempDir'任務後執行'application'插件提供的運行任務。Gradle:如何從其他任務調用應用程序插件提供的隱式任務

我試圖

1)run.dependsOn copySrcToTempDir - > BuildFail

2)run.mustRunAfter copySrcToTempDir - >但不會執行運行任務。

apply plugin:'application' 

     repositories { 
      flatDir { 
       dirs 'lib' 
      } 
     } 
     dependencies { 
      compile name: 'zip4j_1.3.2' 
     } 
     mainClassName = "com.md.zippwd.ZipWithPassword" 

     task copySrcToTempDir(type: Copy){ 
     from "D:\\DemoProject" 
     into "D:\\Temp" 
     } 
    } 
    // run.dependsOn copySrcToTempDir  
    // run.mustRunAfter copySrcToTempDir 

provided gradle command accordingly 

gradle copySrcToTempDir 

gradle run 

please suggest me i'm not finding any solution. 

回答

0

run.dependsOn copySrcToTempDir正在爲我工​​作。我使用gradle 2.5。你正在執行哪個gradle任務?跑?

嘗試使用:

tasks.run.dependsOn("copySrcToTempDir") 
+0

感謝您的回覆 但我得到的錯誤 :copyArsWebApp :運行 錯誤:無法找到或加載主類com.md.zippwd.ZipWithPassword :運行失敗 失敗:建立失敗,一個異常。 *發生了什麼問題: 任務':運行'的執行失敗。 >處理'命令'C:\ Program Files \ Java \ jdk1.7.0_75 \ bin \ java.exe''以非零退出值結束1 *嘗試: 使用--stacktrace選項運行以獲取堆棧跟蹤。使用--info或--debug選項運行以獲取更多日誌輸出。 ------------------------ 它跳過運行任務 之前的任務:compileJava :processResources :類 –

+0

請您分享的gradle文件。 –

+0

我已更新問題並添加了文件的確切代碼 >我認爲如果我們明確地依賴我們自己的任務來運行任務 >運行任務正在避免它的隱式依賴任務 –

0
apply plugin:'application' 

sourceSets.main.java.srcDirs = ['src'] 

    repositories { 
     flatDir { 
      dirs 'lib' 
     } 
    } 
    dependencies { 
     compile name: 'zip4j_1.3.2' 
    } 
    mainClassName = "com.md.zippwd.ZipWithPassword" 

    task copySrcToTempDir(type: Copy){ 
    from "D:\\DemoProject" 
    into "D:\\Temp" 
    } 
} 

task finaltask(dependsOn: ['copyArsWebApp', 'run']) 

說明

We need to add sourceSet if folder is not like src->java->main 

and to use run task, make it is independent because it already depending upon application plugin's task like compile , classes .... 

非常感謝阿賈伊Deshwal。

相關問題