在Eclipse上创建JSF / CDI Maven项目

当我在研究JSF和CDI示例时,我认为提及创建JSF和CDI Maven项目所需的步骤会很有用。 您可以找到以下步骤。

工具类

  • 默认情况下,M2E插件随附的Eclipse Luna。 因此,无需自己安装插件。
  • WildFlye8.x。


  1. 从主菜单中选择文件->新建->其他。 然后选择Maven-> Maven项目。

    1-创建JSF CDI Maven项目

  2. 单击下一步按钮,然后选中“创建简单项目(跳过原型选择)”。

    2-创建JSF CDI Maven项目

  3. 写下组ID和工件ID,然后选择包装作为WAR。

    3-创建JSF CDI Maven项目

  4. 单击“完成”按钮创建项目,并在“导航器”视图中显示波纹管结构。

    4-创建JSF CDI Maven项目

  5. 如您所见,由于没有WEB-INF文件夹,因此没有部署描述符文件(web.xml)。 同样,通过检查Project Facets(选择项目,然后选择ALT + ENTER,然后从左侧菜单中选择Project Facets),我们可以看到Dynamic Web Module的版本为2.5,并且未选择JavaServer Faces。 现在是时候为我们的项目做一些配置了。

    5-创建JSF CDI Maven项目

  6. 右键单击项目名称,然后单击配置->添加JSF功能。 这会将项目配置为JSF项目,并添加带有web.xml和faces-config.xml的WEB-INF。

    7-创建JSF CDI Maven项目

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns="http://java.sun.com/xml/ns/javaee"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
     version="2.5">
     <display-name>JSFCDIMavenProject</display-name>
     <servlet>
      <servlet-name>Faces Servlet</servlet-name>
      <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
     </servlet>
     <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>/faces/*</url-pattern>
     </servlet-mapping>
    </web-app>
    <?xml version="1.0" encoding="UTF-8"?>
    <faces-config
        xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
        version="2.2">
    
    </faces-config>
  7. 将必要的API作为依赖项添加到pom.xml。 另外,添加带有3.1版的maven-compiler-plugin。 我还指出了maven使用Java编译器1.7版。 所以这是最终的pom.xml。
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.ithinkisink</groupId>
     <artifactId>JSFCDIMavenProject</artifactId>
     <version>0.0.1-SNAPSHOT</version>
     <packaging>war</packaging>
    
     <name>JSFCDIMavenProject Maven Webapp</name>
    
     <dependencies>
      <dependency>
       <groupId>javax.inject</groupId>
       <artifactId>javax.inject</artifactId>
       <version>1</version>
       <scope>provided</scope>
      </dependency>
      <dependency>
       <groupId>javax.faces</groupId>
       <artifactId>jsf-api</artifactId>
       <version>2.1</version>
       <scope>provided</scope>
      </dependency>
      <dependency>
       <groupId>javax.servlet</groupId>
       <artifactId>javax.servlet-api</artifactId>
       <version>3.1.0</version>
       <scope>provided</scope>
      </dependency>
      <dependency>
       <groupId>javax.enterprise</groupId>
       <artifactId>cdi-api</artifactId>
       <version>1.0</version>
       <scope>provided</scope>
      </dependency>
     </dependencies>
     <build>
      <finalName>JSFCDIMavenProject</finalName>
      <plugins>
       <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
         <source>1.7</source>
         <target>1.7</target>
        </configuration>
       </plugin>
      </plugins>
     </build>
    </project>
  8. 现在,右键单击项目名称,然后选择“ Maven”->“更新项目”以使用新添加的配置更新项目。
  9. 部署描述符(web,xml)的版本为2.5,我们在依赖项中指向servlet 3.1。 因此,根据Java EE 7XML模式,名称空间更改为http://xmlns.jcp.org/xml/ns/javaee/。 这是应用更改后的最终web.xml。
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
     version="3.1">
     <display-name>JSFCDIMavenProject</display-name>
     <servlet>
      <servlet-name>Faces Servlet</servlet-name>
      <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
     </servlet>
     <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>/faces/*</url-pattern>
     </servlet-mapping>
    </web-app>
  10. 再次检查Project Facets。 您可以更改版本3.1的动态Web模块,并根据依赖项中添加的版本对JavaServer Faces进行2.2版检查。

    6-创建JSF CDI Maven项目

  11. 所需的最后一个配置是启用CDI上下文。 这可以通过创建一个名为beans.xml的XML文件并将其作为以下文件添加到WEB-INF文件夹中来完成。
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
      http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
           bean-discovery-mode="all">
    </beans>

    8-创建JSF CDI Maven项目

  12. 最后,将项目添加到WildFly,然后启动服务器。 您将在控制台视图中看到WildFly启动了将CDI部署到应用程序的服务。

    9-创建JSF CDI Maven项目

我已将此存根项目推送到我的GitHub,您可以通过以下URL找到它。

翻译自: https://www.javacodegeeks.com/2016/02/creating-jsfcdi-maven-project-eclipse.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值