从Gradle执行Java类时找不到Main

时间:2017-07-05 17:00:16

标签: java gradle

我一直在尝试从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();

    }
}

构建之后,我的目录提出了一个build-classes-java-main-myPackage,但是gradle仍然无法找到主类。

1 个答案:

答案 0 :(得分:0)

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

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

并使用

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

更多参考:Gradle to execute Java class (without modifying build.gradle)