0

我正在开发一个使用 springBoot 引导的 Vaadin 应用程序。当我今天早上尝试构建应用程序时(自上次成功构建以来没有执行任何更改),我得到了以下堆栈跟踪:

Using Gradle Vaadin Plugin 0.10.5
:compileJava UP-TO-DATE
:vaadinUpdateWidgetset FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':vaadinUpdateWidgetset'.
> String index out of range: 1

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

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task     ':vaadinUpdateWidgetset'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
...
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 1
    at java_lang_String$replaceAll$2.call(Unknown Source)
    at fi.jasoft.plugin.tasks.UpdateWidgetsetTask.ensureWidgetPresent(UpdateWidgetsetTask.groovy:60)
    at fi.jasoft.plugin.tasks.UpdateWidgetsetTask.ensureWidgetPresent(UpdateWidgetsetTask.groovy)
    at fi.jasoft.plugin.tasks.UpdateWidgetsetTask$ensureWidgetPresent.callStatic(Unknown Source)
    at fi.jasoft.plugin.tasks.UpdateWidgetsetTask.run(UpdateWidgetsetTask.groovy:46)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)

BUILD FAILED

Total time: 9.743 secs
Exception in thread "Thread-3" java.lang.IllegalStateException: Shutdown in progress
    at java.lang.ApplicationShutdownHooks.remove(ApplicationShutdownHooks.java:82)
    at java.lang.Runtime.removeShutdownHook(Runtime.java:237)
    at java_lang_Runtime$removeShutdownHook$2.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
    at fi.jasoft.plugin.tasks.SuperDevModeTask$_closure1.doCall(SuperDevModeTask.groovy:44)
    at fi.jasoft.plugin.tasks.SuperDevModeTask$_closure1.doCall(SuperDevModeTask.groovy)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
    at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019)
    at groovy.lang.Closure.call(Closure.java:426)
    at groovy.lang.Closure.call(Closure.java:420)
    at groovy.lang.Closure.run(Closure.java:507)
    at java.lang.Thread.run(Thread.java:722)

这种行为的原因可能是什么?我已经尝试删除 build 和 widgetset 文件夹,结果相同。这可能是与最近的依赖项更新有关的问题吗?提前致谢!

4

2 回答 2

2

我是 maven 用户,因此 gradle 不是我的强项。尽管如此,堆栈跟踪和来源表明gradle-vaadin-plugin在生成小部件集文件名时失败。

我可以看到昨天发布了一个新版本的插件,并且(也许我错了)它可能是针对问题 #218 的修复引入的回归。我怀疑你可能盲目地继承了昨天发布的最新版本 0.10.5,其中包括上述修复,因此如果可能的话,我建议:

  • 强制使用旧版本的插件,例如 0.10.4
  • 尝试在他们的跟踪器上打开一个问题,包括有关您的环境和配置的详细信息(可能还有指向此问题的链接)

注意:这可能更适合作为评论,但它不适合

于 2016-01-18T12:44:13.097 回答
0

这是由 0.10.5 中的 gradle-vaadin-plugin 中的错误引起的。

此问题已在https://github.com/johndevs/gradle-vaadin-plugin/issues/225中报告,并将在 0.10.6 中修复。

如果您遇到这种情况,只需在 build.gradle 中使用以下 url 降级到 0.10.4

apply plugin: 'http://plugins.jasoft.fi/vaadin.plugin?version=0.10.4
于 2016-01-22T11:28:34.683 回答