[Recipe] Creating Your First Simple Maven Project in Eclipse

Problem: 

Create a simple maven project in Eclipse.

Solution Summary: 

Creating a simple maven project using eclipse is very simple. Just a few clicks and you are done creating your first simple maven project. We will also quickly see some observations on the folders and files created by default after creating our simple project.

Prerequisites: 

Latest Java and Eclipse need to be installed.

Solution: 

First, create a new Maven project using the eclipse new project wizard. You can either right click on the project explorer or go from the File menu item, to go to create new project wizard.

 

In the next screen, select the checkbox for Create a simple project:

 

Finally, give a group id, artifact id, name and description, leaving other values as default:

Once you click finish, your first Maven project is created.

 

Important Observations

Some of the quick observations are as below:

 

pom.xml

There will be a pom file (pom.xml) created with below contents:

<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.javajee.mavenexamples</groupId>
  <artifactId>maven-demo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>maven-demo</name>
  <description>maven demo</description>
</project>

You can add dependencies to this pom file to get started with developing applications using those dependencies. For example, to work with Spring core, you can simply add the below dependency inside the project element:

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.2.6.RELEASE</version>
    </dependency>
</dependencies>

 

Folder structure

Maven creates few default folders as per Maven convention:

  • src/main/java - All your source code and packages should be created here.

  • src/main/resources - All your config and/or property files that need to be present in classpath needs to be placed here.

  • src/test/java - All your test class source code and packages should be created here.

  • src/test/resources - All your test related config and/or property files that need to be present in classpath needs to be placed here.

 

Setting java compiler version

By default maven might use a different version of Java than you require. You can set your Java version compliance details in the pom file as:

<build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>

Recipe Tags: 

Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) Arrays (1) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (55) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (5) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (9) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (11) Java Programmer 2 (7) Javascript Frameworks (1) Java SE Professional (1) JPA 1 - Module (6) JPA 1 - Modules (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)