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
clean service
Seleccionamos en Create a simple project y presionamos Next
Login Test
LLenamos los siguientes campos y presionamos Finish: survey
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
java project
Destendemos la pestaña que dice Maven y seleccionamos Maven Module y presionamos Next
java project
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
java project
Llenamos los siguientes datos:
Por último hacemos clic en Finish
java project
Ahora creamos el modulo encuesta donde plasmaremos la encuesta que generemos en el admin, volvemos a selecionar
File->New->Other
java project
Destendemos la pestaña que dice Maven y seleccionamos Maven Module y presionamos Next
java project
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
java project
Llenamos los siguientes datos:
Por último hacemos clic en Finish
java project
Ahora creamos el modulo core donde tendremos nuestra persistencia de datos , volvemos a selecionar
File->New->Other
java project
Destendemos la pestaña que dice Maven y seleccionamos Maven Module y presionamos Next
java project
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
java project
Llenamos los siguientes datos:
Por último hacemos clic en Finish
java project
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
clean service
Selecionamos Project Facets en el recuadro seleccionamos Dynamic Web Module 3.1 y Java Server Faces 2.2 y presionamos Apply posterriormente OK Login Test
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
clean service
y en consola aparece lo siguiente:
survey10
De nuevo sobre survey10Hacemos clic derecho y seleccionamos Run As->Maven install
clean service
y en consola aparece lo siguiente:
survey10
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>