微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Vaadin 20 Gradle 插件:vaadinBuildFrontend 因“参数‘outputDirectory’%s提供的路径不是目录而失败”

如何解决Vaadin 20 Gradle 插件:vaadinBuildFrontend 因“参数‘outputDirectory’%s提供的路径不是目录而失败”

在相当简单的 Vaadin 20.0.3 项目中运行 ./gradlew vaadinBuildFrontend --stacktrace 导致

[...]
Caused by: com.vaadin.flow.server.ExecutionFailedException: Error occured during goal execution: Could not write exported web component module because of exception: Path provided by parameter 'outputDirectory' (PROJECT/SUBPROJECT/build/frontend) is not a directoryPlease run Maven with the -e switch (or Gradle with the --stacktrace switch),to learn the full stack trace.
        at com.vaadin.flow.plugin.base.BuildFrontendUtil.runNodeUpdater(BuildFrontendUtil.java:307)
        at com.vaadin.gradle.VaadinBuildFrontendTask.vaadinBuildFrontend(VaadinBuildFrontendTask.kt:73)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
        ... 119 more
Caused by: java.lang.RuntimeException: Could not write exported web component module because of exception: Path provided by parameter 'outputDirectory' (PROJECT/SUBPROJECTe/build/frontend) is not a directory
        at com.vaadin.flow.server.webcomponent.WebComponentModulesWriter$DirectoryWriter.generateWebComponentsToDirectory(WebComponentModulesWriter.java:264)
        at com.vaadin.flow.server.frontend.FrontendWebComponentGenerator.generateWebComponents(FrontendWebComponentGenerator.java:95)
        at com.vaadin.flow.server.frontend.NodeTasks.<init>(NodeTasks.java:597)
        at com.vaadin.flow.server.frontend.NodeTasks.<init>(NodeTasks.java:54)
        at com.vaadin.flow.server.frontend.NodeTasks$Builder.build(NodeTasks.java:215)
        at com.vaadin.flow.plugin.base.BuildFrontendUtil.runNodeUpdater(BuildFrontendUtil.java:300)
        ... 121 more
Caused by: java.lang.IllegalArgumentException: Path provided by parameter 'outputDirectory' (PROJECT/SUBPROJECT/build/frontend) is not a directory
        at com.vaadin.flow.server.webcomponent.WebComponentModulesWriter.writeWebComponentsToDirectory(WebComponentModulesWriter.java:91)
        at com.vaadin.flow.server.webcomponent.WebComponentModulesWriter$DirectoryWriter.generateWebComponentsToDirectory(WebComponentModulesWriter.java:250)
        ... 126 more

vaadin 的配置关闭不配置任何目录,所以插件应该使用认值:

vaadin {
    optimizeBundle = false
    productionMode = false
    pnpmEnable = true
}

在运行任务之前创建 build/frontend 目录没有帮助。它在异常之前被删除

解决方法

https://github.com/vaadin/flow/issues/8033 票听起来很相似。您可以尝试使用 --dry-run 运行 Gradle 以查看 vaadinPrepareFrontend 任务是否已运行吗?

由于这看起来像是一个错误,最好的做法是在 https://github.com/vaadin/flow/issues 打开错误报告。

另外,请阅读有关如何在多项目构建中使用 Vaadin Gradle 插件的信息:https://github.com/vaadin/vaadin-gradle-plugin/#multi-project-builds

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。