Статьи

Создание проекта JSF / CDI Maven на Eclipse

Пока я работал над примером JSF и CDI, я подумал, что было бы полезно упомянуть шаги, необходимые для создания проекта JSF и CDI Maven. Вы можете найти ниже шаги для этого.

инструменты

  • Eclipse Luna по умолчанию поставляется с плагином M2E. Так что нет необходимости устанавливать плагин самостоятельно.
  • WildFlye 8.x.

  1. Выберите в главном меню Файл-> Создать-> Другое. Затем выберите Maven-> Maven Project.

    1-Создание проекта JSF CDI Maven

  2. Нажмите кнопку «Далее» и установите флажок «Создать простой проект (пропустить выбор архетипа)».

    2-Создание проекта JSF CDI Maven

  3. Напишите Идентификатор группы и Идентификатор артефакта, затем выберите Упаковка как WAR.

    3-Создание проекта JSF CDI Maven

  4. Нажмите кнопку Готово, чтобы создать проект со следующей структурой, отображаемой в представлении «Навигатор».

    4-Создание проекта JSF CDI Maven

  5. Как видите, файл дескриптора развертывания (web.xml) отсутствует, так как нет папки WEB-INF. Также, проверив Фасеты проекта (выберите проект, затем ALT + ENTER, затем выберите в левом меню «Фасеты проекта»), мы увидим, что версия Динамического веб-модуля — 2.5, а JavaServer Faces не выбран. Итак, пришло время внести некоторые изменения в наш проект.

    5-Создание проекта JSF CDI Maven

  6. Щелкните правой кнопкой мыши на имени проекта, затем выберите «Настройка»> «Добавить возможности JSF». Это настроит проект как проект JSF и добавит WEB-INF с web.xml и face-config.xml.

    7-Создание проекта JSF CDI Maven

    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    <?xml version="1.0" encoding="UTF-8"?>
     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>
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="UTF-8"?>
    <faces-config
        version="2.2">
     
    </faces-config>
  7. Добавление необходимых API в качестве зависимостей в pom.xml. Также добавим maven-compiler-plugin с версией 3.1. Я также указал maven использовать компилятор Java версии 1.7. Итак, вот последний файл pom.xml.
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     <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, и мы указываем на сервлет 3.1 в нашей зависимости. Таким образом, в соответствии со схемой Java EE 7XML пространство имен изменяется на http://xmlns.jcp.org/xml/ns/javaee/. Это окончательный файл web.xml после применения этого изменения.
    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    <?xml version="1.0" encoding="UTF-8"?>
     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. Проверьте еще раз аспекты проекта. Вы можете изменить Dynamic Web Module для версии 3.1, а JavaServer Faces проверяется на версии 2.2 в соответствии с версией, добавленной в зависимости.

    6-Создание проекта JSF CDI Maven

  11. Последняя необходимая конфигурация — это включение контекста CDI. Это можно сделать, создав XML-файл с именем beans.xml и добавив его в папку WEB-INF, как показано ниже.
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
           xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
           bean-discovery-mode="all">
    </beans>

    8-Создание проекта JSF CDI Maven

  12. Наконец добавьте проект в WildFly и запустите сервер. В представлении консоли вы увидите, что WildFly запустил службу для развертывания CDI в приложении.

    9-Создание проекта JSF CDI Maven

Я перенес этот проект-заглушку на мой GitHub, и вы можете найти его по нижеуказанному URL.

Ссылка: Создание проекта JSF / CDI Maven на Eclipse от нашего партнера по JCG Белала Галала, я думаю, я потону! блог.