You are on page 1of 16

Academic Year 2022-23

Open Elective - I
Software Process Automation
Project Report
On

Analysis of Gradle Tool


(To study its utilization, installation, configuration and create new project)

Team Members Details


Banti Pathak – 36 – AI&ML
Roshan Patil – 37 – AI&ML
Shreyash Salunke – 39 – AI&ML
Mehul Sarda – 41 – AI&ML
Aryan Shah – 42 – AI&ML
Adarsh Rai – 35 – ELEX
Aditya Shandilya – 43 – ELEX
Aashtha Sharma – 44 – ELEX
Sahil Momin – 32 – AI&DS

Faculty In charge
Himani Tiwari
Professor, TCET
CONTENTS

Topic Page No
● Abstract 03

● Application of Tool 04

● Similar Tools 06

● Installation with Prerequisites 07

● Working

o Creation and Configuration of New Project 10

o Building 11

● Results & Conclusions 15

● References 16
ABSTRACT

Gradle is an open-source build automation tool that has gained popularity in the software
industry for its flexibility, scalability, and efficiency in automating the software build process.
This report provides an analysis of Gradle and its utilization in software process automation. It
includes information on the installation and configuration of Gradle, as well as the steps required
to create a new project using Gradle. Additionally, we will also explore how Gradle can be used
to automate various tasks in the software development process, such as compiling code, running
tests, and finally demonstrated a C++ application for solving the N-Queens Problem by using
Gradle to build it. Overall, this IE topic presents a comprehensive overview of Gradle and its role
in software process automation.
APPLICATION OF TOOL

Gradle is an open-source build automation tool that is used for building, testing, and deploying
software projects. It is based on the Groovy programming language and provides support for
Java, C++, Python, and other languages. Gradle is designed to be flexible, efficient, and scalable,
and it is used by many large organizations for their software projects.

Utilization:
Gradle is used to automate the build process of software projects. It allows developers to define
the build process as a series of tasks that can be executed in a specific order. These tasks can
include compiling source code, running tests, generating documentation, and packaging the
application for deployment. Gradle uses a domain-specific language (DSL) based on Groovy to
define these tasks, making it easy to create and customize build scripts. It is widely used in the
software industry for building, testing, and deploying software projects.

Here are some of the applications of Gradle in different programming languages:


1. Java:
Gradle is widely used in Java-based projects for its ease of use and flexibility. Some of
the applications of Gradle in Java include:
• Building and managing dependencies for Java applications
• Running JUnit tests and generating test reports
• Creating executable JAR files
• Deploying Java applications to different environments

2. C++:
Gradle can also be used for building and managing C++ projects. Some of the
applications of Gradle in C++ include:
• Building C++ projects on different platforms and architectures
• Managing dependencies for C++ libraries
• Generating test reports using Google Test or Boost Test
• Building and packaging native executables for different platforms

3. Android:
Gradle is the default build system for Android projects and provides several benefits,
including:
• Managing dependencies for Android apps and libraries
• Building and signing APK files for distribution
• Running automated tests using the Android testing framework
• Generating reports on code coverage and performance metrics

4. Python:
While Gradle is primarily used for Java and C++ projects, it can also be used for building
and managing Python projects. Some of the applications of Gradle in Python include:
• Managing dependencies using pip or other package managers
• Running automated tests using pytest or unittest
• Building and packaging Python modules for distribution
• Deploying Python applications to different environments

Overall, Gradle is a versatile tool that can be used for building and managing software projects in
a variety of programming languages and environments.
SIMILAR TOOLS

Following are some similar tools to Gradle that are used for build automation:
1. Apache Maven:
Apache Maven is a popular build automation tool that is widely used in Java projects. It
uses an XML-based project configuration file and provides support for managing
dependencies, building and testing projects, and generating reports on code quality.

2. Apache Ant:
Apache Ant is a Java-based build automation tool that uses XML-based configuration
files to define build tasks. It is widely used in Java projects for building, testing, and
deploying software, and provides a simple and flexible way to automate the build
process.

3. Bazel:
Bazel is a build automation tool that is designed for large-scale software projects. It
provides support for multiple programming languages and can be used to build and test
projects on different platforms and architectures. Bazel uses a declarative configuration
language to define build tasks.

4. Make:
Make is a classic build automation tool that has been used for decades in software
development. It uses makefiles to define build tasks and dependencies, and provides a
way to automate the build process for a wide range of programming languages and
platforms.

5. SCons:
SCons is a build automation tool that is designed for Python projects. It uses a Python-
based configuration file to define build tasks and provides support for building and
testing Python modules and applications.
INSTALLATION WITH PREREQUISTIES

Prerequisites:
• Operating System (OS):
Gradle supports various operating systems, including Windows, macOS, and Linux. We
should make sure that our operating system is supported by Gradle before proceeding
with the installation.

• Java Development Kit (JDK):


Gradle requires JDK to be installed on our system in order to function properly. We can
download and install the latest version of JDK from the Oracle website.
Link:- Java Downloads | Oracle
Gradle Installation:
• Download Gradle:
Go to the Gradle website and download the latest version of Gradle distribution. We can
choose between the binary-only distribution or the complete distribution with sources and
documentation.
Link:- Gradle | Installation

• Extract Gradle:
Extract the downloaded Gradle distribution to our desired location. We can use any file
compression tool, such as 7-Zip or WinZip, to extract the files.

• Set Gradle Path:


Set the GRADLE_HOME or JAVA_HOME environment variable to the directory where
we extracted Gradle. This can be done in our system's environment variables settings.
• Add Gradle to PATH:
Add the bin directory of the Gradle distribution to our system's PATH environment
variable. This will allow us to run the Gradle commands from anywhere in the terminal.

• Verify Installation:
To verify that Gradle has been installed correctly, open a new terminal window and run
the following command:
WORKING

Creation and Configuration of new project:


Building:
RESULTS & CONCLUSIONS

We demonstrated the use of gradle by building a C++ application for solving N-Queens
Problems which was build and executed successfully.
Following are the snippets of the results:
REFERENCES

[1] Cheng, B. H. C., & Atlee, J. M. (2016). Software engineering at Google: Lessons learned
from programming over time. IEEE Software, 33(4), 56-63.
[2] Jansen, S., & Bruntink, M. (2017). Enabling Continuous Delivery for Microservices: An
Experience Report on DevOps Tooling. In European Conference on Service-Oriented and
Cloud Computing (pp. 127-141). Springer.
[3] De Alwis, C. (2017). Mastering Gradle: A modern build automation system for Java.
Packt Publishing Ltd.
[4] Zoller, H. (2018). Gradle in Action. Manning Publications.
[5] Ma, J., Liu, Z., Cai, L., & Cao, Y. (2018). Research on software development tools for
Industry 4.0. In 2018 IEEE 9th International Conference on Software Engineering and
Service Science (ICSESS) (pp. 101-105). IEEE.
[6] Zingaro, D., & Burleson, W. (2018). Teaching Agile Software Development with Gradle.
Journal of Computing Sciences in Colleges, 33(5), 102-110.
[7] Chen, J., Song, L., & Zhai, Y. (2019). A Study on Automated Build Tool Gradle. In
Proceedings of the 3rd International Conference on Big Data and Smart Computing (pp.
118-123). ACM.
[8] Martelli, A., & Pellegrino, A. (2019). Enhancing software maintainability with Gradle.
Journal of Software: Evolution and Process, 31(2), e2123.
[9] Muthusamy, R., & Singaravelan, S. (2019). A Comparative Study of Build Tools for Java
Applications. In 2019 IEEE International Conference on System, Computation,
Automation and Networking (ICSCAN) (pp. 39-44). IEEE.
[10] Rostami, M., & Azimi, R. (2021). Automated Build System Using Gradle for
Web Application Development. In 2021 8th International Conference on Signal
Processing and Intelligent Systems (ICSPIS) (pp. 213-218). IEEE.

You might also like