Categories: Java

How to Gradle Spring MVC Web Project

The article describes steps that are required to build the a Spring MVC web application project using Gradle tool.

Step 1: Web Application Folder

Make sure you have maven-based web application folder. We recommend you to check our article published on different possible layouts of web application folders. As a recap, following is how the web application folder structure would look like:

  • src/main/java (Consists of Java files)
  • src/main/resources
  • src/main/scripts
  • src/main/webapps: This would further have following folder structure:
    • assets (publicly accessible files)
      • css
      • js
      • images
    • META-INF
    • WEB-INF
      • lib (spring/hibernate & other libraries)
      • views (jsp files)
    • hibernate.cfg.xml (if hibernate is used as well)
    • spring-servlet.xml
    • web.xml

 

Step 2: Create a Gradle Script

Create a gradle script in the root folder. Name it as build.gradle. Following is how the gradle script would look like:

apply plugin: 'java'
apply plugin: 'war'

repositories {
    flatDir { dirs "src/main/webapp/WEB-INF/lib" }
    mavenCentral()
}

dependencies {        
        compile 'org.springframework:spring-webmvc:4.0.3.RELEASE'
        compile 'org.springframework:spring-core:4.0.3.RELEASE'
        compile 'org.springframework:spring-aop:4.0.3.RELEASE'       
        compile 'org.springframework:spring-web:4.0.3.RELEASE'       
        compile 'org.springframework:spring-beans:4.0.3.RELEASE'  
        compile 'org.springframework:spring-context:4.0.3.RELEASE'  
        compile 'org.springframework:spring-tx:4.0.3.RELEASE'  
        compile 'org.hibernate:hibernate-core:4.3.5.FINAL'  
        compile 'org.hibernate:hibernate-jpa:2.1-api-1.0.0.FINAL'          
}

war {    
    webInf { from 'src/main/webapp/WEB-INF'} // adds a file-set to the WEB-INF dir.    
    classpath fileTree('src/main/webapp/WEB-INF/lib') // adds a file-set to the WEB-INF/lib dir.
    webXml = file('src/main/webapp/WEB-INF/web.xml') // copies a file to WEB-INF/web.xml        
    from('src/main/webapp') { include ('bootstrap/css/*.css', 'bootstrap/js/*.js', 'bootstrap/img/*.*')  }
}

task deploy (dependsOn: war){
copy {
    from "build/libs"
    into "D:/Apache Software Foundation/Tomcat 8.0/webapps"
    include "*.war"
}
}

 

Step 3: Build using Gradle

Last step is to build the web application. Go to root folder of web application. Execute the command “gradle war” to build. Optionally, execute “gradle deploy” and the web application will be built and the war file will be deployed in tomcat webapps folder.

Ajitesh Kumar

I have been recently working in the area of Data analytics including Data Science and Machine Learning / Deep Learning and BI. I would love to connect with you on Linkedin. Check out my books titled as Designing Decisions, and First Principles Thinking.

Recent Posts

The Watermelon Effect: When Green Metrics Lie

We’ve all been in that meeting. The dashboard on the boardroom screen is a sea…

3 weeks ago

Coefficient of Variation in Regression Modelling: Example

When building a regression model or performing regression analysis to predict a target variable, understanding…

3 months ago

Chunking Strategies for RAG with Examples

If you've built a "Naive" RAG pipeline, you've probably hit a wall. You've indexed your…

3 months ago

RAG Pipeline: 6 Steps for Creating Naive RAG App

If you're starting with large language models, you must have heard of RAG (Retrieval-Augmented Generation).…

3 months ago

Python: List Comprehension Explained with Examples

If you've spent any time with Python, you've likely heard the term "Pythonic." It refers…

4 months ago

Large Language Models (LLMs): Four Critical Modeling Stages

Large language models (LLMs) have fundamentally transformed our digital landscape, powering everything from chatbots and…

6 months ago