如何在Gradle中为JavaExec任务设置主类类路径?

时间:2016-08-21 11:26:56

标签: gradle classpath

如果我想通过使用sourceSets.main.runtimeClasspath类路径从Main类运行main,我必须将Main类放在src/main/java中并使用类似的东西:

apply plugin: 'java'

dependencies {

}

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

我想要的是理解如何指定一个不同的类路径来从中检索包含main()的类。 如果我想从不在src / main / java中的类运行main,但它与build.gradle在同一个文件夹中怎么办?

我知道做这样的事情是没有意义的,但我希望找到一个解决方案作为练习来学习Gradle。

1 个答案:

答案 0 :(得分:4)

由于您仍然需要编译此类,并且该类不在标准src/main/java目录中,您需要为该路径定义其他SourceSet并使用相同的你所描述的方法

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

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