Exercise-4

5. Practical Exercise: Build and Run a Java Application with Maven, Migrate the Same Application to Gradle

Part 1: Build and Run a Java Application Using Maven

Step 1: Create a Maven Project

Open a terminal and run:

mvn archetype:generate -DgroupId=com.example -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Then, navigate into the project folder:

cd myapp

OUTPUT:



Step 2: Verify Project Structure

After running the command, your project will have this structure:

myapp
│── src │ ├── main │ │ └── java │ │ └── com.example │ │ └── App.java │ ├── test │ │ └── java │ │ └── com.example │ │ └── AppTest.java │── pom.xml

OUTPUT:


Step 3: Update App.java (Main Application)

Modify src/main/java/com/example/App.java:

package com.example;
public class App { public static void main(String[] args) { System.out.println("Hello from Maven!"); } }

OUTPUT:



Step 4: Configure pom.xml for JUnit and Plugins

Modify 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>myapp</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.2.0</version> <configuration> <archive> <manifest> <mainClass>com.example.App</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> </project>

OUTPUT:


Step 5: Build and Run the Application with Maven

Compile and Build the JAR

mvn clean package

OUTPUT:


Run the Application
java -jar target/myapp-1.0-SNAPSHOT.jar

Expected Output:

Hello from Maven!

OUTPUT:



Part 2: Migrate the Same Application to Gradle

Step 1: Create a New Gradle Project

Navigate outside your Maven project folder and run:

mkdir myapp-gradle
cd myapp-gradle
gradle init

Step 2: Copy Java Files from Maven to Gradle

Manually copy the src folder from myapp (Maven project) to myapp-gradle.

(Note: replace myapp-gradle src folder with myapp src folder)

Step 3: Modify build.gradle.kts (Kotlin DSL)

Edit build.gradle.kts:

plugins {
java application } repositories { mavenCentral() } dependencies { implementation("org.springframework.boot:spring-boot-starter-web:2.7.0") testImplementation("junit:junit:4.13.2") } application { mainClass.set("com.example.App") }

OUTPUT:



Step 4: Build and Run the Application with Gradle

Compile and Build the JAR

gradle clean build

OUTPUT:


Run the Application

gradle run

Expected Output:

Hello from Maven!

OUTPUT:



Summary

StepMaven CommandGradle Command
Create Projectmvn archetype:generategradle init
Compile Codemvn compilegradle build
Run Testsmvn testgradle test
Build JARmvn packagegradle jar
Run Applicationjava -jar target/myapp-1.0-SNAPSHOT.jargradle run

Comments