Can';从Gradle执行Java类时找不到Main

Can';从Gradle执行Java类时找不到Main,java,gradle,Java,Gradle,我一直在尝试从Gradle运行java main,但是Gradle不断地告诉我错误 任务“:myTask”的执行失败 没有指定主类 我在下面附上了代码 sourceSets { main { java { srcDirs 'src/myPackage/downloadupdater' srcDirs 'src/myPackage/downloadupdater/util' srcDirs 'src/

我一直在尝试从Gradle运行java main,但是Gradle不断地告诉我错误

任务“:myTask”的执行失败

没有指定主类

我在下面附上了代码

sourceSets {
    main {
        java {
            srcDirs 'src/myPackage/downloadupdater'
            srcDirs 'src/myPackage/downloadupdater/util' 
            srcDirs 'src/myPackage/downloadupdater/dao'
        }
        // output.classesDir = "/bin"
    }
}

task myTask(dependsOn : compileJava, type : JavaExec){
    group = "Custom"
    description = "Acquires the weekly stats"

    doLast{
        classpath = sourceSets.main.output.classesDir
        main = "myPackage.SomeClass"
        args "-w"
    }
}
我调用的java类是:

package myPackage
public class SomeClass{

    private static DownloadUpdater updater;

    public static void main (String [] args) {

        updater = new DownloadUpdater();
    
        updater.whichStatistics(args[0]);
    
        updater.setCalendar();
    
        updater.secureWorkbook();
    
        updater.getStatistics();

    }
}

构建之后,“我的目录”会生成一个构建类java main myPackage,但gradle仍然找不到主类。

或者将java源文件移到src/main/java,而不是只移到src。或设置

sourceSet properly
sourceSets.main.java.srcDirs = ['src'] 
和使用

task execute(type:JavaExec) {
main = "myPackage.SomeClass"
classpath = sourceSets.main.runtimeClasspath
}

有关更多信息,请参阅:

意识到我的错误,我在一个doLast块中设置了main和classpath,该块在尝试将任务配置为Java可执行文件时抛出了一个错误。一旦移出doLast块并允许在配置阶段运行,一切都会顺利进行。谢谢错误:(38,1)评估根项目“MyProject”时出现问题。>无法获取任务的未知属性“sourceset”:org.gradle.api.tasks.JavaExec类型的“execute”。