Java 使用ramdisk使用IntelliJ 2019.2构建Maven驱动的Vaadin 14应用程序?(“前端编译失败”) 更新:Bug

Java 使用ramdisk使用IntelliJ 2019.2构建Maven驱动的Vaadin 14应用程序?(“前端编译失败”) 更新:Bug,java,maven,vaadin,pom.xml,vaadin-flow,Java,Maven,Vaadin,Pom.xml,Vaadin Flow,我归档了。确定存在错误,并解释了一些细节 我将这个问题留待讨论,以防有人有解决办法 tl;博士 Vaadin 14 Maven驱动的构建过程的某些部分忽略了我的Maven POM文件中的设置,这与: 目标 前端 生成的流导入.js package.json 也许我应该提交一份bug报告。或者是否有解决方案/解决方法 细节 我正在使用Vaadin 14.0.7或14.1.0alpha2构建一些web应用程序。我想使用a来加快构建过程,同时避免闪存的磨损 有了它,我可以在macOS Mo

我归档了。确定存在错误,并解释了一些细节

我将这个问题留待讨论,以防有人有解决办法

tl;博士 Vaadin 14 Maven驱动的构建过程的某些部分忽略了我的Maven POM文件中的
设置,这与:

  • 目标
    • 前端
      • 生成的流导入.js
      • package.json
也许我应该提交一份bug报告。或者是否有解决方案/解决方法

细节 我正在使用Vaadin 14.0.7或14.1.0alpha2构建一些web应用程序。我想使用a来加快构建过程,同时避免闪存的磨损

有了它,我可以在macOS Mojave上安装1G的ramdisk,在MacMini上安装

diskutil partitionDisk$(hdiutil attach-nomountram://2097152)1 GPT格式APFS“RamDisk”“100%”
使用,我编辑了我的Maven POM文件,以使IntelliJ使用ramdisk上的
target
文件夹进行构建

  • 元素中添加:
    /Volumes/RamDisk/target
  • 元素中,添加:
    
${buildDirectory}
在运行Maven
安装之后,我可以看到构建在那里成功了,包含了所有预期的文件夹和一个WAR文件

当我试图使用与IntelliJ捆绑的Jetty服务器在IntelliJ中运行我的项目时,问题出现了,方法是从Maven窗格运行
Jetty:run
项。我在IntelliJ的
Run
窗格中看到了许多预期的输出。但是在
webpack
的很多行之后,我得到了一个
前端编译失败
错误:

[webpack]信息开发webpack-build/webcomponentsjs/webcomponents-loader.js 6.13 KiB[已发布]
[网页包]信息开发网页包-
[webpack]ERROR dev webpack-未找到输入模块中的错误:错误:无法在“/Users/basilbourque/IdeaProjects/ticktock/frontend”中解析“/Volumes/RamDisk/target/frontend/generated flow imports.js”
[网页包]错误开发网页包-
[webpack]ERROR dev webpack-未找到输入模块中的错误:错误:无法在“/Users/basilbourque/IdeaProjects/ticktock/frontend”中解析“/Volumes/RamDisk/target/frontend/generated flow imports.js”
[网页包]错误开发网页包-ℹ 「wdm:未能编译。
[网页包]错误开发网页包-
------------------前端编译失败-----------------
RamDisk上确实存在
/Volumes/RamDisk/target/frontend/
文件夹。但是在中找不到生成的流imports.js
文件

Vaadin web应用程序确实能够在服务器上运行。当将我的web浏览器指向该web应用程序时,我可以看到显示的预期网页,但大部分都被红色文本框中的一条长长的错误消息所覆盖,全部内容都是关于“网页包错误”

在ramdisk上,有一个名为
frontend
的文件夹正在
target
文件夹中创建。它只包含一个文件,
package.json

ramdisk的屏幕截图:

大多数预期内容都出现在ramdisk的
target
文件夹中。但是在闪存上,正在创建一个
target
文件夹,其中一个
frontend
文件夹嵌套在一对文件中:
generated flow imports.js
&
package.json
。因此,似乎Vaadin项目构建中有部分忽略了我的Maven POM文件中的
设置

闪存存储的屏幕截图:

如果我返回POM注释掉我的

${buildDirectory}
,一切都很好,能够通过捆绑Jetty运行我的Vaadin web应用程序,没有任何“前端”或“网页包”错误


➥ 如何使前端编译与我的ramdisk一起工作?

当您将buildDirectory指向ramdisk时,“常规”生成文件夹中是否生成了任何内容?我猜在构建过程中使用的一些maven插件不尊重buildDirectory,可能需要单独配置。这是因为您没有将整个源代码树复制到ramdisk,然后从ramdisk开始工作?@ThorbjørnRavnAndersen请看维基百科,@radai谢谢您的提问。是的,的确如此,我检查过了:大多数预期的内容都出现在ramdisk的
target
文件夹中。但是在闪存上,正在创建一个
target
文件夹,其中一个
frontend
文件夹嵌套在一对文件中:
generated flow imports.js
&
package.json
。因此,Vaadin项目构建的某些部分忽略了我的Maven POM文件中的
设置。也许这就足以保证一个bug报告了。@BasilBourque-是的,看来要么检查插件的源代码,要么提交bug报告就是前进的方向。您是否尝试将磁盘中的目标文件夹符号链接到ramdrive以尝试欺骗插件?或者您可以让maven在tha vaadin插件运行后复制文件(请参阅maven ant插件)