Proyecto con Maven

Contactar con el profesor

Creamos un proyecto Maven sin arquetipo (Create a simple project (skip archetype selection)) y editamos su pom.xml.

Si es un proyecto con Eclipse…

  1. No te olvides de seleccionar el empaquetado war!
java maven project

2. Debemos asegurarnos de que en Project facets tenemos marcado Dynamic Web module y Java. Para acceder a las Project facets, pulsaremos con el botón derecho sobre el proyecto ⟶ Properties ⟶ Project Facets.

project java facets

3. Debemos asegurarnos de que existe una carpeta webapp, en la raíz de nuestro proyecto, donde meteremos las vistas:

estructura proyecto Maven

4. Debemos asegurarnos de que nuestro proyecto tiene añadidas las librerías de Maven en tiempo de ejecución. Para comprobarlo ⟶ botón derecho sobre el proyecto ⟶ properties ⟶ Deployment Assembly:

librerias maven

Si no las tuviesemos, pulsaríamos en Add ⟶ Java Build Path Entries ⟶ Maven Dependencies

java build path entries
Eclipse Maven Dependencies

5. Debemos asegurarnos de que nuestro proyecto tiene ubicada correctamente la carpeta webapps, o de lo contrario no podremos ejecutar Run as -> Run on server

web deployment assembly webapp

Si la ruta /src/main/webapp no existiese, tendríamos que crearla pulsando en Add.

web deployment-assembly-folder
Añadir webcontent a proyecto web
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.pablomonteserin</groupId>
  <artifactId>calidades-futbol-jpa</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  
  	<properties>
		<hibernate.version>5.4.2.Final</hibernate.version>
		<spring.version>5.1.7.RELEASE</spring.version>
		<jstl.version>1.2</jstl.version>
		<servletapi.version>4.0.1</servletapi.version>
	</properties>
	
	<dependencies>
			<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>${hibernate.version}</version>
		</dependency>

		<!-- Entity manager which is required for JPA -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-entitymanager</artifactId>
			<version>${hibernate.version}</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>8.0.16</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.0.1</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jsp-api</artifactId>
			<version>2.0</version>
			<scope>provided</scope>
		</dependency>
		<!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl-api -->
		<dependency>
			<groupId>jstl</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>
	</dependencies>
	
	<build>
		<plugins>		
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<version>2.6</version>
				<configuration>
					<failOnMissingWebXml>false</failOnMissingWebXml>
				</configuration>
			</plugin>
		</plugins>
	</build>
	
</project>
src/main/resources/META-INF/persistence.xml
(habrá que crear la carpeta META-INF)
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
	xmlns="http://xmlns.jcp.org/xml/ns/persistence"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
	<persistence-unit name="TEST_PERSISTENCE_JPA"
		transaction-type="RESOURCE_LOCAL">
		<class>com.pablo.clase.persistence.model.Customer</class>
		<class>com.pablo.clase.persistence.model.Address</class>

		<properties>
			<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/prueba-jpa?serverTimezone=UTC" />
			<property name="javax.persistence.jdbc.user" value="pm" />
			<property name="javax.persistence.jdbc.password" value="pp" />

			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL8Dialect" />

			<!-- hace cambios -->
			<property name="hibernate.hbm2ddl.auto" value="update" />

			<!-- si los cambios los fastidian todo, no hace cambios -->
			<!-- <property name="hibernate.hbm2ddl.auto" value="validate" /> -->

			<!-- <property name="hibernate.hbm2ddl.auto" value="create-drop" /> -->
			<property name="show_sql" value="true" />
		</properties>
	</persistence-unit>
</persistence>
← Evitar una reinserción en la base de datos al refrescar la web
Ejercicios MVC →

Aviso Legal | Política de privacidad