We can specify the project dependencies in pom.xml using <dependencies> element.
<dependencies>
.......
.......
</dependencies>
You must explicitly specify the groupId, artifactId, version of the dependency jar file. For example, below snippet added gson dependency to my project.
<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson.version}</version>
</dependency>
</dependencies>
Follow below step-by-step procedure to build complete working application.
Step 1: Create new maven project ‘maven-add-dependency-demo’ in Eclipse.
Refer below post for more details.
https://self-learning-java-tutorial.blogspot.com/2022/03/create-new-maven-project-in-eclipse.html
Step 2: Update pom.xml with maven dependencies.
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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sample.app</groupId>
<artifactId>maven-add-dependency-demo</artifactId>
<version>1</version>
<properties>
<java.version>1.8</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.report.outputEncoding>UTF-8</project.report.outputEncoding>
<gson.version>2.9.0</gson.version>
</properties>
<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>com.sample.app.HelloWorld</Main-Class>
<Build-Number>1.0</Build-Number>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Step 3: Create a package com.sample.app.model and define AppDetails class.
AppDetails.java
package com.sample.app.model;
public class AppDetails {
private String appName;
private String version;
public AppDetails() {
}
public AppDetails(String appName, String version) {
this.appName = appName;
this.version = version;
}
public String getAppName() {
return appName;
}
public void setAppName(String appName) {
this.appName = appName;
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
}
Step 4: Define HelloWorld class in com.sample.app package.
HelloWorld.java
package com.sample.app;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.sample.app.model.AppDetails;
public class HelloWorld {
public static void main(String[] args) {
AppDetails appDetails = new AppDetails("Chat Server", "1.23.4");
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(appDetails);
System.out.println(json);
}
}
Total project structure looks like below.
Step 5: Generate the artifact.
Go to the directory where pom.xml file is located and execute the command ‘mvn clean package’. It generates maven-add-dependency-demo-1.jar file in target folder.
Execute the command ‘java -jar ./target/maven-add-dependency-demo-1.jar’ to run the application.
$ java -jar ./target/maven-add-dependency-demo-1.jar
{
"appName": "Chat Server",
"version": "1.23.4"
}
You can download complete working application from below link.
https://github.com/harikrishna553/java-libs/tree/master/maven-projects/maven-add-dependency-demo
No comments:
Post a Comment