🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.
▶️ Subscribe to My YouTube Channel (178K+ subscribers): Java Guides on YouTube
▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube
Prerequisites
- JDK 21 installed
- Maven installed
- A web browser
Step 1: Generate a Maven Project
First, open your command line terminal and run the following command to generate a Maven project:
mvn archetype:generate -DgroupId=com.example -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
This command creates a Maven project with the basic directory structure for a web application.
Step 2: Navigate to the Project Directory
Change to the newly created project directory:
cd my-webapp
Step 3: Update the pom.xml File
Open the pom.xml file and update it to include the latest versions of dependencies and plugins. Here is an example of an updated 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.example</groupId>
<artifactId>my-webapp</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>My Web Application</name>
<description>A simple Maven web application</description>
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.jsp</groupId>
<artifactId>jakarta.jsp-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jakarta.servlet.jsp.jstl</artifactId>
<version>3.0.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>TomcatServer</server>
<path>/my-webapp</path>
</configuration>
</plugin>
</plugins>
</build>
</project>
Step 4: Create the Web Application Directory Structure
If not already created, ensure the directory structure is as follows:
my-webapp
│ pom.xml
└───src
└───main
└───java
└───resources
└───webapp
│ WEB-INF
│ index.jsp
src/main/java: Place your Java source files here.src/main/resources: Place your resource files here.src/main/webapp: Place your web content here (e.g., HTML, JSP files).src/main/webapp/WEB-INF: Place your web.xml file and other configuration files here.
Step 5: Create a Simple JSP Page
Create a file named index.jsp in the src/main/webapp directory with the following content:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>My Web Application</title>
</head>
<body>
<h2>Hello, World!</h2>
</body>
</html>
Step 6: Create web.xml File
Create a file named web.xml in the src/main/webapp/WEB-INF directory with the following content:
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Archetype Created Web Application</display-name>
</web-app>
Step 7: Build the Project
Run the following command to build the project:
mvn clean package
This command will generate a WAR file in the target directory.
Step 8: Run the Application
To run the web application, you can use an embedded Tomcat server. Add the following plugin configuration to your pom.xml:
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/my-webapp</path>
</configuration>
</plugin>
</plugins>
</build>
Now, start the application using the following command:
mvn tomcat7:run
Step 9: Access the Application
Open your web browser and navigate to http://localhost:8080/my-webapp. You should see the "Hello, World!" message from your index.jsp page.
Conclusion
Congratulations! You have successfully created a simple Maven web application using the command line. This guide covered the essential steps, from generating the project to running it on an embedded Tomcat server. Maven simplifies the process of managing dependencies and building Java web applications, making it an invaluable tool for Java developers.
My Top and Bestseller Udemy Courses. The sale is going on with a 70 - 80% discount. The discount coupon has been added to each course below:
Build REST APIs with Spring Boot 4, Spring Security 7, and JWT
[NEW] Learn Apache Maven with IntelliJ IDEA and Java 25
ChatGPT + Generative AI + Prompt Engineering for Beginners
Spring 7 and Spring Boot 4 for Beginners (Includes 8 Projects)
Available in Udemy for Business
Building Real-Time REST APIs with Spring Boot - Blog App
Available in Udemy for Business
Building Microservices with Spring Boot and Spring Cloud
Available in Udemy for Business
Java Full-Stack Developer Course with Spring Boot and React JS
Available in Udemy for Business
Build 5 Spring Boot Projects with Java: Line-by-Line Coding
Testing Spring Boot Application with JUnit and Mockito
Available in Udemy for Business
Spring Boot Thymeleaf Real-Time Web Application - Blog App
Available in Udemy for Business
Master Spring Data JPA with Hibernate
Available in Udemy for Business
Spring Boot + Apache Kafka Course - The Practical Guide
Available in Udemy for Business
Once the Jetty server is started just hit the below URL in a browser:
ReplyDeletehttp://localhost:8080/simple-webapp/simple
The maven archetype is missing, so you cannot even finish step 1.
ReplyDelete