新 java primefaces 项目库为空

new java primefaces project libraries is empty

我在使用 primefaces 创建一个新的 java ee 项目时遇到了一个小问题。

当我进入框架页面时,库是空的。

我不明白为什么。

我给你两张图给你看

你有解决办法吗?

提前致谢

例如:

从您的屏幕截图来看,您似乎使用的是最新版本的 NetBeans,并且您创建的项目使用:

File > New Project > Java with Ant > Java Web > Web Application

(以下注释假设一个 Tomcat web 容器。如果您使用不同的东西,下面的一些点也可能不同 - 但要点应该是相同的。)

我的偏好是使用基于 Maven 的项目而不是基于 Ant 的项目:

File > New Project > Java with Maven > Web Application

使用 Maven

创建项目时不需要指定任何框架。要开始使用 PrimeFaces,请编辑作为项目的一部分自动生成的 pom.xml 文件 - 它位于 Project Files 文件夹中。

在 POM 中,您将看到以下部分 - 您将看到我为 PrimeFaces 添加了一个新的依赖项子部分:

<dependencies>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>7.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.primefaces</groupId>
        <artifactId>primefaces</artifactId>
        <version>8.0</version>
    </dependency>
</dependencies>

在 POM 中自动创建的 javaee-web-api 依赖关系负责 JSF 要求(Primefaces 需要)。

最后,运行 构建 (F11),以确保将新添加的依赖项拉入您的项目。您将在项目的 Dependencies 文件夹中看到 primefaces-8.0.jar

现在您可以创建一个测试 XHTML 网页来验证 PrimeFaces 是否正常工作:

用蚂蚁

如果您仍然喜欢或需要使用基于 Ant 的方法,则过程类似。在第 4 步,选择“JSF 2.3”的注册库(屏幕截图中显示的那个)并单击“完成”,而不是尝试 select PrimeFaces 组件库。

现在,因为您没有使用 Maven,您将不得不手动下载 PrimeFaces JAR 文件(例如从 this page 上的 jar link),然后手动将其添加到您的项目中,以基于 Ant 的项目的通常方式:

Project properties > Libraries > Add JAR/Folder

(这是我更喜欢 Maven 的原因之一 - 库下载是自动的。)

更新 - 基于评论

基于 Ant 的依赖管理

如果您need/want使用基于 Ant 的项目,那么为依赖管理设置类似 Maven 的支持是值得的。有不止一种方法可以做到这一点。使用 Ivy 是一种选择。

Tomcat 对比应用服务器

在我的回答中,我最初的假设是使用 Tomcat。 Tomcat 是 Web 容器的示例,它为 Java servlet 提供支持 - 但它不是成熟的 Jakarta EE 应用程序服务器 - 因此它不包含所需的 JSF 库(因此需要按照本答案前面所述的步骤中的说明提供它们)。如果您使用的是 Glassfish 或 TomEE(或许多其他应用程序服务器)等应用服务器,则已提供 JSF。

JSF 版本

对于 Tomcat 这样的 Web 容器,NetBeans 可能没有您 want/need 可以使用的 JSF 版本。在这种情况下,作为一个单独的步骤,您可以下载所需的 JAR 文件(例如从 Maven 或从官方 JSF web site)。

在 NetBeans 中,转到“工具”>“库”>“新建库...”,然后为您的库命名并提供所需的 JAR 文件。

这个库现在可以在“新项目”向导中使用:

不过要重申一下,您不需要使用 NetBeans 向导来 select 您要使用的 JSF 小部件框架(例如 PrimeFaces)。以通常的方式将其作为项目中的 JAR/library 依赖项提供会更容易。