NetBeans 无法在 Maven Web 应用程序上运行 package.json
Posted
技术标签:
【中文标题】NetBeans 无法在 Maven Web 应用程序上运行 package.json【英文标题】:NetBeans can't run package.json on a Maven web application 【发布时间】:2017-05-21 16:19:19 【问题描述】:使用 NetBeans 8.2,我创建了一个新的 Maven Web 应用程序。我在Web Pages
文件夹中放置了一个工作的package.json
文件,所以它的路径是:
C:\Users\xxx\Documents\NetBeansProjects\MyApp\src\main\webapp\package.json
我左键单击package.json
文件并单击npm install
选项。然后我受到这些错误/警告的欢迎:
"C:\Program Files\nodejs\npm.cmd" "install"
npm WARN ENOENT ENOENT: no such file or directory, open 'C:\Users\Nick\Documents\NetBeansProjects\MyApp\package.json'
npm WARN EPACKAGEJSON C:\Users\xxx\Documents\NetBeansProjects\MyApp No description
npm WARN EPACKAGEJSON C:\Users\xxx\Documents\NetBeansProjects\MyApp No repository field.
npm WARN EPACKAGEJSON C:\Users\xxx\Documents\NetBeansProjects\MyApp No README data
npm WARN EPACKAGEJSON C:\Users\xxx\Documents\NetBeansProjects\MyApp No license field.
Done.
我注意到 NetBeans 试图在错误的位置查找 package.json 文件:
C:\Users\Nick\Documents\NetBeansProjects\MyApp\package.json'
而且我似乎不知道如何告诉 IDE 在哪里寻找它。
当我转到 Project Properties → javascript Libraries → npm 时,我得到一个空视图:
package.json 未找到
如何设置 NetBeans 以查看“package.json”并运行它?当我尝试在 html5 项目中使用它时,它运行良好,但我需要对 Java Web 应用程序项目提供 npm 支持。
【问题讨论】:
我支持这个问题。似乎 Netbeans 希望用户将 HTML5 项目与 Java 项目分开? 如果我将(创建)package.json 放在项目根文件夹中,它似乎可以工作:下载库和依赖项等;但是我不知道如何从项目的 html、jsps 和视图中引用这些 js 文件 【参考方案1】:我最终找到了内置 IDE 机制之外的解决方案。我使用 frontend-maven-plugin 为我的项目设置了本地 npm 存储库。
我没有使用 IDE 提供的 npm install
选项,而是使用 Maven 定义一个目标,并使用 nbactions.xml
运行它。
要安装插件,请编辑您的 pom.xml
文件 (sn-p from here),添加插件描述符和将下载并在您的存储库中安装 npm 的执行:
<plugins>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>1.8.0</version>
<executions>
<!-- Installs node + npm in your repo -->
<execution>
<id>install node and npm</id>
<goals>
<goal>install-node-and-npm</goal>
</goals>
<phase>generate-resources</phase>
</execution>
...
我已将此代码附加到上面的代码中。这是一个运行 npm install
(sn-p found here) 的执行:
....
<execution>
<id>npm install</id>
<goals>
<goal>npm</goal>
</goals>
<!-- optional: default phase is "generate-resources" -->
<phase>generate-resources</phase>
<configuration>
<!-- optional: The default argument is actually
"install", so unless you need to run some other npm command,
you can remove this whole <configuration> section.
-->
<arguments>install</arguments>
</configuration>
</execution>
</plugin>
创建一个package.json
文件(在您的POM 所在的同一目录中)并开始将内容放入其中(example)
我在nbactions.xml
中添加了对npm install
目标的引用。我给它起了一个显示名称npm-install
</actions>
...
<action>
<actionName>CUSTOM-npm-install</actionName>
<displayName>npm-install</displayName>
<goals>
<goal>npm</goal>
</goals>
</action>
</actions>
然后,右键单击项目(从项目视图)-> 运行 Maven -> npm-install
然后该插件将运行并在不会与您的项目捆绑的单独目录中安装 package.json
和 Node.js 运行时,您可以在那里对其进行编辑并重新运行目标。
【讨论】:
以上是关于NetBeans 无法在 Maven Web 应用程序上运行 package.json的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Netbeans 无法识别我的 Grails 应用程序中的 Maven 依赖项导入?
在 NetBeans 中编译 Maven 项目时 Ant 无法找到环境变量
使用 maven 编译 netbeans Web 服务项目时出错
无法将 JProfiler 与 Netbeans 中的 Java 项目集成
如何在 Netbeans 11 中使用 Maven 和 Inno Setup 为 JavaFX 应用程序创建可执行安装程序