2016-08-21 120 views
1

我,如果我想從一個主類運行爲主,通過sourceSets.main.runtimeClasspath classpath中,我必須把主類src/main/java內,使用這樣的:如何在Gradle中爲JavaExec任務設置主類路徑?

apply plugin: 'java' 

dependencies { 

} 

task myTask (type: JavaExec){ 
    dependsOn classes 
    classpath sourceSets.main.runtimeClasspath 
    main = 'Main' 
} 

我要的是明白我如何指定一個不同的類路徑來從中檢索包含main()的類。 如果我想從不在src/main/java中的類運行main,但它與build.gradle位於同一文件夾中,該怎麼辦?

我知道這樣做沒有意義,但我希望找到一個解決方案作爲練習來學習Gradle。

回答

2

正如你仍然需要編譯類,而在情況下,類不在標準src/main/java目錄,你需要定義額外SourceSet該路徑,當你描述使用相同的方法:

sourceSets { 
    main { 
     custom { 
      srcDirs = ['custom/path'] 
     } 
    } 
} 

task myTask (type: JavaExec){ 
    dependsOn classes 
    classpath sourceSets.custom.runtimeClasspath 
    main = 'Main' 
}