Desarrollo
La solución la vamos a realizar de la siguiente manera vamos a crear un proyecto tipo modular con maven,la persistencia de datos nada mas con mysql y jdbc sin spring el front end primefaces 10.0 comenzemos:Abrimos nuestro IDE eclipse y seleccionamos en File->New->Maven Project
Seleccionamos en Create a simple project y presionamos Next
LLenamos los siguientes campos y presionamos Finish:
- Group Id: com.tutosoftware.survey10
- Artifact Id: survey10
- Packaging: pom
- Name: Survey10
En el archivo pom.xml escribimos lo siguiente
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<verbose>true</verbose>
<fork>true</fork>
<executable>${JAVA_HOME}/bin/javac</executable>
<compilerVersion>1.8</compilerVersion>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.2</version>
<configuration>
<jvm>${JAVA_HOME}/bin/java</jvm>
<forkMode>once</forkMode>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.3.1</version>
<inherited>true</inherited>
<executions>
<execution>
<id>enforce</id>
<configuration>
<rules>
<DependencyConvergence />
<requireJavaVersion>
<version>1.8</version>
</requireJavaVersion>
</rules>
</configuration>
<goals>
<goal>enforce</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<versionRange>[1.0.0,)</versionRange>
<goals>
<goal>enforce</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
Una vez realizado esta parte en nuestro editor eclipse selecionamos File->New->Other
Destendemos la pestaña que dice Maven y seleccionamos Maven Module y presionamos Next
En la siguiente pantalla seleccionamos Create a simple project (skip archetype selection) , luego en Module name: lo nombramos como survey10-admin y en Parent project: seleccionamos survey10 y presionamos Next
Llenamos los siguientes datos:
- Group id:com.tutosoftware.survey10
- Version:0.0.1-SNAPSHOT
- Packaging:seleccionar war
- name:surveyadmin
Ahora creamos el modulo encuesta donde plasmaremos la encuesta que generemos en el admin, volvemos a selecionar
File->New->Other
Destendemos la pestaña que dice Maven y seleccionamos Maven Module y presionamos Next
En la siguiente pantalla seleccionamos Create a simple project (skip archetype selection) , luego en Module name: lo nombramos como survey10-encuesta y en Parent project: seleccionamos survey10 y presionamos Next
Llenamos los siguientes datos:
- Group id:com.tutosoftware.survey10
- Version:0.0.1-SNAPSHOT
- Packaging:seleccionar war
- name:Survey Encuesta
Ahora creamos el modulo core donde tendremos nuestra persistencia de datos , volvemos a selecionar
File->New->Other
Destendemos la pestaña que dice Maven y seleccionamos Maven Module y presionamos Next
En la siguiente pantalla seleccionamos Create a simple project (skip archetype selection) , luego en Module name: lo nombramos como survey10-core y en Parent project: seleccionamos survey10 y presionamos Next
Llenamos los siguientes datos:
- Group id:com.tutosoftware.survey10
- Version:0.0.1-SNAPSHOT
- Packaging:seleccionar jar
- name:Survey Core
Marca un error en el módulo marcado con que sería survey10-admin y survey10-encuesta porque no tiene el archivo web.xml , pero lo solucionaremos de la siguiente manera, hacemos clic derecho en el proyecto y selecionamos Properties
Selecionamos Project Facets en el recuadro seleccionamos Dynamic Web Module 3.1 y Java Server Faces 2.2 y presionamos Apply posterriormente OK
Creamos una carpeta en src/main/webapp llamada WEB-INF.Creamos el archivo web.xml y escribimos lo siguiente:
survey10-admin web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="3.1">
<display-name>survey10admin</display-name>
<absolute-ordering/>
<!-- load spring configuration -->
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>vela</param-value>
</context-param>
<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>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>faces/login.xhtml</welcome-file>
</welcome-file-list>
</web-app>
survey10-encuesta web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="3.1">
<display-name>survey10encuesta</display-name>
<absolute-ordering/>
<!-- load spring configuration -->
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>vela</param-value>
</context-param>
<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>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
</web-app>
Ahora nos vamos al modulo padre llamado survey10. Haciendo clic derecho y seleccionamos Run As->Maven clean
y en consola aparece lo siguiente:
De nuevo sobre survey10Hacemos clic derecho y seleccionamos Run As->Maven install
y en consola aparece lo siguiente:
Ahora lo que vamos hacer es instalar los jars nos vamos a survey10 dejando el archivo pom.xml de la siguiente forma:
<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.tutosoftware.survey10</groupId>
<artifactId>survey10</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Survey10</name>
<repositories>
<repository>
<id>prime-repo</id>
<name>PrimeFaces Maven Repository</name>
<url>http://repository.primefaces.org/</url>
<layout>default</layout>
</repository>
</repositories>
<properties>
<cts.version>0.0.1-SNAPSHOT</cts.version>
<primefaces.version>10.0.0-RC1</primefaces.version>
<jsf2.version>2.2.10</jsf2.version>
<jstl.version>1.2</jstl.version>
<jsp-api.version>2.1</jsp-api.version>
<servlet-api.version>3.1.0</servlet-api.version>
<mysql.version>8.0.11</mysql.version>
<itext.version>2.1.7</itext.version>
<poi.version>3.17</poi.version>
<elri.version>1.0</elri.version>
<javaeewebapi.version>7.0</javaeewebapi.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.tutosoftware.survey10</groupId>
<artifactId>survey10-core</artifactId>
<version>${cts.version}</version>
</dependency>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>${primefaces.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.18</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>${jsf2.version}</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>${jsf2.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>${jsp-api.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servlet-api.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>${jstl.version}</version>
</dependency>
<dependency>
<groupId>com.sun.el</groupId>
<artifactId>el-ri</artifactId>
<version>${elri.version}</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>${javaeewebapi.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>${itext.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>${poi.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<verbose>true</verbose>
<fork>true</fork>
<executable>${JAVA_HOME}/bin/javac</executable>
<compilerVersion>1.8</compilerVersion>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.2</version>
<configuration>
<jvm>${JAVA_HOME}/bin/java</jvm>
<forkMode>once</forkMode>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.3.1</version>
<inherited>true</inherited>
<executions>
<execution>
<id>enforce</id>
<configuration>
<rules>
<DependencyConvergence />
<requireJavaVersion>
<version>1.8</version>
</requireJavaVersion>
</rules>
</configuration>
<goals>
<goal>enforce</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<versionRange>[1.0.0,)</versionRange>
<goals>
<goal>enforce</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<modules>
<module>survey10-admin</module>
<module>survey10-encuesta</module>
<module>survey10-core</module>
</modules>
</project>