Build Automation with Gradle

Slides:



Advertisements
Similar presentations
Agile Software Distribution
Advertisements

Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
Developing in CAS. Why? As distributed you edit CAS 3 with Eclipse and build with Maven 2 – Best Practice for Release Engineering – Difficult edit-debug.
Introduction to Maven Michael Youngstrom. Notes This is a training NOT a presentation Please ask questions Prerequisites – Introduction to the Java Stack.
Build your Android App with Gradle Android new build system.
Java Build Tool Comparison HJUG - April 29th, 2009 John Tyler.
Remote Unit Testing Brian Pruitt-Goddard Alex Riordan.
BizTalk Deployment using Visual Studio Release Management
Big Projects  Part of this class is about picking a cool software project and building it 1.
Automating the Build Process using ANT SE-2030 Dr. Mark L. Hornick 1.
Julie McEnery1 Installing the ScienceTools The release manager automatically compiles each release of the Science Tools, it creates a set of wrapper scripts.
#RefreshCache CI - Daily Builds w/Jenkins – an Open Source Continuous Integration Server Nick Airdo Community Developer Advocate Central Christian Church.
Getting Started With Java Downloading and installing software Running your first program Dr. DwyerFall 2012.
Maven & Bamboo CONTINUOUS INTEGRATION. QA in a large organization In a large organization that manages over 100 applications and over 20 developers, implementing.
MAVEN-BLUEMARTINI Yannick Robin. What is maven-bluemartini?  maven-bluemartini is Maven archetypes for Blue Martini projects  Open source project on.
Automating the Build Process using Ant SE-2030 Dr. Rob Hasker 1 Based on material by Dr. Mark L. Hornick.
Understanding Eclipse Development Environment Hen-I Yang July 7, 2006
Introduction to Android. Android as a system, is a java based operating system that runs on the Linux kernel. The system is very lightweight and full.
Using the ALM Module Fully Automated Deployments in Stack 3.2.
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
Copyright © 2015 Curt Hill Environment Establishing one for Minecraft Modding.
1 Creating an RTC Hot Fix September 18, Steps for creating a hot fix Find the work item where the defect is resolved. Check for existing hot fixes.
9/2/ CS171 -Math & Computer Science Department at Emory University.
Setting Up Eclipse. What is Eclipse? Eclipse is a free, downloadable software that allows us to create, compile, and run JAVA programs.
Liferay Installation Prepared by: Do Xuan Hai 8 August 2011.
Refactoring and Synchronization with the StarTeam Plug-in for Eclipse  Jim Wogulis  Principal Architect, Borland Software Corporation.
INTRODUCTION TO MINECRAFT FORGE CSCI 3130 SUMMER 2014.
Software Development COMP220/COMP285 Seb Coope Introducing Ant These slides are mainly based on “Java Development with Ant” - E. Hatcher & S.Loughran.
Gradle and Eclipse RCP Ned Twigg
Build Systems Presentation December 14, 2015 Noon-1pm Kathy Lee Simunich Bldg. 203/ D120 Brought to you by: Argonne Java.
® IBM Software Group © 2006 IBM Corporation Rational Asset Manager v7.2 Using Scripting Tutorial for using command line and scripting using Ant Tasks Carlos.
Build Tools 1. Building a program for a large project is usually managed by a build tool that controls the various steps involved. These steps may include:
Selenium server By, Kartikeya Rastogi Mayur Sapre Mosheca. R
Test Automation Using Selenium Presented by: Shambo Ghosh Ankit Sachan Samapti Sinhamahapatra Akshay Kotawala.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Maven. Introduction Using Maven (I) – Installing the Maven plugin for Eclipse – Creating a Maven Project – Building the Project Understanding the POM.
Repository Manager 1.3 Product Overview Name Title Date.
CS520 Web Programming Introduction to Maven Chengyu Sun California State University, Los Angeles.
JavaFX on Mobile and Embedded: Status and Future Plans
Five todos when moving an application to distributed HTC.
SG Introduction to ANT scmGalaxy Author: Rajesh Kumar
Java on Gentoo. Java on Gentoo by Petteri Räty2 Gentoo Java team ● 8 developers – Some are not very active ● Current project lead is Joshua Nichols ●
XNAT 1.7: Getting Started 6 June, Introduction In this presentation we’ll discuss:  Features and functions in XNAT 1.7  Requirements  Installing.
Air Plugins Extending and customizing uDeploy (IBM UrbanCode Deploy)
ONAP on Vagrant for ONAPers
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
Reports and Translations
Development Environment
Unit Testing.
Maven 04 March
CS520 Web Programming Introduction to Maven
Plan What is Maven ? Links : mvn command line tool
The Use of AMET and Automated Scripts for Model Evaluation
Google Web Toolkit Tutorial
JavaOne BOF: The Legacy Developer’s Guide to Java 9
Test Driven Development
Brian Leonard ブライアン レオナルド
Project management and comprehension tool
Build and Package CSE 403 section, 2011 Feb 3, Hao Lu.
Continuous Integration For Databases
Zlatko Stamatov JavaSkop 13 December 2015
Maven IIB9 Plug-in Version 9.0
Module 01 ETICS Overview ETICS Online Tutorials
JENKINS TIPS Ideas for making your life with Jenkins easier
Maven IIB9 Plug-in Version 9.0
CS 240 – Advanced Programming Concepts
The Most Popular Android UI Automation Testing Tool Andrii Voitenko
Carthage ios 8 onwards Dependency manager that streamlines the process of integrating the libraries into the project.
Review of Previous Lesson
Building LabKey with Gradle
Presentation transcript:

Build Automation with Gradle CS3281 Lightning Talk 1 Build Automation with Gradle Jeremy Goh

Setting up a new dev environment Imagine having to download and manage so many dependencies and their versions manually!

Agenda What is Gradle? Getting Started Some cool things to automate

Agenda What is Gradle? Getting Started Some cool things to automate

About gradle A open source Java-based build automation tool Requires a recent version of JDK or JRE installed Main focus is on Java projects Uses groovy which is actually very similar to Java (not surprising) Automates the compiling and packaging of projects Manage project dependencies Allow for the easier setup of project workspace for incoming developers

About gradle Gradle is very modular The base program itself is rather basic Easy to use and requires no installation if you use the wrapper This eliminates the problem out having different gradle versions among a team of developers The wrapper can easily be bundled with the program source code, so it won’t become another dependency a new developer have to manage when setting up a new project environment Everything else is done by plugins and user generated scripts

About gradle At its core, Gradle is just the execution of a series of tasks. By default, plugins will define a set of tasks Users can also define their own tasks All tasks will be executed only once Tasks can depend on another task – therefore users can easily set the order of the tasks executed The tasks can be seen as nodes in a Directed Acyclic Graph.

Gradle java tasks

Agenda What is Gradle? Getting Started Some cool things to automate

Agenda What is Gradle? Getting Started Some cool things to automate

A simple gradle build file

Apply The plugin The Java plugin adds some of the essential default tasks to Gradle such as complieJava and build.

Remote repositories This line tells Gradle where to look (if necessary) for dependencies artifact (a fancy word for a Jar file). You can define custom remote repositories here (such as your ftp server)

Define sources This section is entirely optional. If not defined, the Java plugin will use the following defaults: src/main/java Production Java source src/main/resources Production resources src/test/java Test Java source src/test/resources Test resources

Dependencies Here is where you can define all your project dependencies. There are several possible types of dependencies that you can define here. Some important ones: compile: Compile time dependencies testCompile: Additional dependencies for compiling tests Additionally, plugins may define additional types of dependencies (like deobfCompile)

Default tasks Here is where you can define default tasks to run when no task is defined (when the user runs “./gradlew”) Note because tasks depend on each other, making the default task build will result in all the tasks being run (such as complieJava etc.)

Agenda What is Gradle? Getting Started Some cool things to automate

Agenda What is Gradle? Getting Started Some cool things to automate

Automate everything How about automating incrementing of version numbers?

More possibilities! Code Analysis Continuous integration Upload new versions automatically Generate a list of changelogs using titles merged PRs automatically Sign Jar release files automatically … and more!

The End