简体   繁体   English

从Gradle执行Java类时找不到Main

[英]Can't find Main when executing a Java class from Gradle

I've been attempting to run a java main from Gradle however Gradle keeps giving me the error 我一直在尝试从Gradle运行Java Main,但是Gradle不断给我错误

Execution failed for task ':myTask' 任务':myTask'的执行失败

No main class specified 未指定主要班级

I've attached the code below 我已附上以下代码

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"
    }
}

The java class I'm calling is: 我正在调用的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();

    }
}

After building, my directories come up with a build-classes-java-main-myPackage but gradle still can't find the main class. 构建之后,我的目录带有一个build-classes-java-main-myPackage,但是gradle仍然找不到主类。

Either move java source files to src/main/java instead of just src. 要么将Java源文件移动到src / main / java而不是src。 Or set 或设置

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

and use 和使用

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

for more refer : Gradle to execute Java class (without modifying build.gradle) 有关更多信息,请参见: Gradle执行Java类(无需修改build.gradle)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM