切换到Gradle后,无法在NetBeans中执行调试任务

Zer*_*ide 16 java netbeans netbeans-plugins gradle

我在Netbeans中安装了Gradle-support插件,我可以很好地构建和运行该项目.当我尝试在调试模式下运行时,我得到以下输出:

Executing: gradle debug

:debug
Cannot execute debug because the property "mainClass" is not defined or empty.

BUILD SUCCESSFUL

Total time: 0.222 secs
Run Code Online (Sandbox Code Playgroud)

我正在使用:

 Oracle Java 1.8
 Gradle 1.12
 Netbeans 8.0
 Gradle-Support 1.3.0
 LinuxMint 16
Run Code Online (Sandbox Code Playgroud)

为什么我不能运行我的调试器?

Rad*_*dim 19

添加类似的东西

if (!hasProperty('mainClass')) {
    ext.mainClass = 'com.foo.acme.Main'
}
Run Code Online (Sandbox Code Playgroud)

到你的build.gradle.它将告诉Gradle插件启动应用程序时要使用的类.也许这应该可以在UI中自定义,但我现在看不到它.


小智 11

此问题的另一个解决方案是创建新的调试任务.与gradle run任务类似,您只需将以下任务添加到您的build.gradle文件中:

task debug(dependsOn: classes, type: JavaExec) {
    main = project.mainClassName
    classpath = sourceSets.main.runtimeClasspath
    standardInput = System.in
    workingDir = project.assetsDir
    ignoreExitValue = true
    debug = true
}
Run Code Online (Sandbox Code Playgroud)


Tri*_*ion 5

除了Radim的答案之外,还可以回答mainClass在Netbeans UI中自定义参数的方法.

在此输入图像描述

在Netbeans gradle项目的属性中,转到"Built-In Tasks/Debug",取消单击"Inherit"并在参数中添加"-PmainClass = aaa.bbb.ccc".

我想这也应该为运行任务完成.

这就像运行/调试单个文件一样,它已经将所选文件作为参数mainClass.