无法使用NetBeans 8.1的Gradle支持插件构建Gradle项目

时间:2016-01-03 16:38:18

标签: java netbeans gradle

我开始了一个学习项目,熟悉Gradle,Spring和Vaadin。到目前为止,我已经在一些Spring指南的帮助下成功创建了基本的CRUD功能。

现在我想将项目导入NetBeans。我为NetBeans安装了Gradle Support plugin并将我的存储库克隆到一个新的NetBeans项目中。

当我在NetBeans中尝试onebuild项目时,它失败了,告诉我无法找到主类。但是当我使用我加载到存储库中的gradle包装器直接从命令行我bootRunbuild时,它工作正常。

我研究了Gradle Support plugin's wiki on GitHub的每一页,但无法找到与我的问题相关的任何信息。

这是我尝试通过项目的上下文菜单操作 Tasks / build / build 在NetBeans中运行项目时得到的输出:

bootRun

我将上述stacktrace粘贴到Gist。

这是我在同一个项目中从命令行执行的成功构建的输出:

Executing: gradle :build

:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:findMainClass FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':findMainClass'.
> Could not find property 'main' on task ':run'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 1.957 secs



Build failure (see the Notifications window for stacktrace): gradle :build

我真的不知道如何继续这个,并且非常感谢任何提示,我发现从命令行运行和从NetBeans运行时得到不同的结果非常奇怪。不应该在NetBeans插件中调用我在命令行上直接使用的相同命令,并且工作正常吗?

2 个答案:

答案 0 :(得分:8)

我找到了两种方法来解决这个问题。

a)添加

if (!hasProperty('mainClass')) {
    ext.mainClass = 'org.foo.Bar'
}

build.gradle

b)将选项/其他/ Gradle /任务执行/自动任务设置为“NetBeans不应自动添加任务”。

我在NetBeans生成的build.gradle文件中找到的这条评论给了我关键的提示:

// NetBeans will automatically add "run" and "debug" tasks relying on the
// "mainClass" property. You may however define the property prior executing
// tasks by passing a "-PmainClass=<QUALIFIED_CLASS_NAME>" argument.
//
// Note however, that you may define your own "run" and "debug" task if you
// prefer. In this case NetBeans will not add these tasks but you may rely on
// your own implementation.

答案 1 :(得分:2)

使用最新版本的spring-boot-gradle-plugin(1.3.1.RELEASE)时出现了同样的错误。降级到1.2.8.RELEASE后,错误消失了。

1.3.x中有一些配置更改,请参阅此处的Gradle插件: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.3-Release-Notes

在NetBeans Gradle与命令行中,可能版本解析不同。因此,您可以尝试指定版本1.2.8,或根据1.3更改更新配置。