Building LabKey with Gradle

Slides:



Advertisements
Similar presentations
Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
Advertisements

Build your Android App with Gradle Android new build system.
Java Build Tool Comparison HJUG - April 29th, 2009 John Tyler.
Maven: Build and project management in the 21th century.
Apache Jakarta Tomcat Suh, Junho. Road Map Tomcat Overview Tomcat Overview History History What is Tomcat? What is Tomcat? Servlet Container.
Automating the Build Process using ANT SE-2030 Dr. Mark L. Hornick 1.
Migrating to EPiServer CMS 5 Johan Björnfot -
Deploying and Managing Software by Using Group Policy.
Using Ant to build J2EE Applications Kumar
CHAPTER 4 SPRING FRAMEWORK Wattanapong suttapak, Software Engineering, school of Information communication Technology, university of phayao.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Maven & Bamboo CONTINUOUS INTEGRATION. QA in a large organization In a large organization that manages over 100 applications and over 20 developers, implementing.
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
Automating the Build Process using Ant SE-2030 Dr. Rob Hasker 1 Based on material by Dr. Mark L. Hornick.
INFSOM-RI Juelich, 10 June 2008 ETICS - Maven From competition, to collaboration.
Ant Build Tools.  Creating a product from source may take several steps: Compile Link Copy files to various directories Remove intermediate files Generate.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
Automating the Build Process using ANT SE-2030 Dr. Rob Hasker 1 Based on material by Dr. Mark L. Hornick.
© 2006 by WTP PMC; made available under the EPL v1.0 | Cambridge | September 6, 2006 Hakeem Shittu Software Consultant Customizing Eclipse Functionality.
Ibm.com /redbooks © Copyright IBM Corp All rights reserved. WP07 ITSO iSeries Technical Forum WebSphere Portal Express– Installation, Configuration.
CVS Hudson Build Server krykhudson.desy.de:8282 User Developer.
Overview of the Automated Build & Deployment Process Johnita Beasley Tuesday, April 29, 2008.
Software Development COMP220/COMP285 Seb Coope Introducing Ant These slides are mainly based on “Java Development with Ant” - E. Hatcher & S.Loughran.
14th Oct 2005CERN AB Controls Development Process of Accelerator Controls Software G.Kruk L.Mestre, V.Paris, S.Oglaza, V. Baggiolini, E.Roux and Application.
GLite build and integration system Building and Packaging Robert HARAKALY
Chapter 1 Introducing Ant. What is ant? Ant is a build tool  Automate the tasks of compiling code, running test, and packaging the results for redistribution.
Maven for building Java applications By Nalin De Zoysa
Gradle and Eclipse RCP Ned Twigg
2136 Gallows Road, Suite F, Dunn Loring, VA Phone: Fax: Business Analyst Training 1 Module 5.2 Rational ClearCase.
Ant / continuous integration. Turning Client Vision into Results 2 Outline presentation Introduction Ant –History –Concepts –Tasks –Examples –Extending.
Build Systems Presentation December 14, 2015 Noon-1pm Kathy Lee Simunich Bldg. 203/ D120 Brought to you by: Argonne Java.
Hyperion Artifact Life Cycle Management Agenda  Overview  Demo  Tips & Tricks  Takeaways  Queries.
Slide 1 Running NEMO at ECMWF Slide 1 NEMO under Perforce at ECMWF Kristian S. Mogensen Last revised:
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:
(1) Code Walkthrough robocode-pmj-dacruzer Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
IBM Express Runtime Quick Start Workshop © 2007 IBM Corporation Deploying a Solution.
GLite build and integration system Building and Packaging Robert HARAKALY
DataGrid is a project funded by the European Commission under contract IST EDG Baseline API Document Document build description and current.
8/29/10 Maven Repository Management with Nexus Jim McMahon.
Maven. Introduction Using Maven (I) – Installing the Maven plugin for Eclipse – Creating a Maven Project – Building the Project Understanding the POM.
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
SCDB Update Michel Jouvin LAL, Orsay March 17, 2010 Quattor Workshop, Thessaloniki.
9 Copyright © 2004, Oracle. All rights reserved. Getting Started with Oracle Migration Workbench.
This material is based upon work supported by the U.S. Department of Energy Office of Science under Cooperative Agreement DE-SC , the State of Michigan.
XNAT 1.7: Getting Started 6 June, Introduction In this presentation we’ll discuss:  Features and functions in XNAT 1.7  Requirements  Installing.
Managing User Desktops with Group Policy
Source Code Control For CSE 3902 By: Matt Boggus.
Chuan-kai Lin Drake Diedrich Google Inc.
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
Open-O Integration Project Introduction
Maven 04 March
Build Automation with Gradle
Plan What is Maven ? Links : mvn command line tool
Shared Services with Spotfire
LECTURE 2: Software Configuration Management
OFBiz Internals.
Advanced Integration and Deployment Techniques
LECTURE 3: Software Configuration Management
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
Zlatko Stamatov JavaSkop 13 December 2015
Maven IIB9 Plug-in Version 9.0
Devops Jenkins as CI/CD tool Created By: Amrit Choudhary
JENKINS TIPS Ideas for making your life with Jenkins easier
All About Gump Presentation
Maven IIB9 Plug-in Version 9.0
Continuous Integration Tool
CS 240 – Advanced Programming Concepts
International Living Atlases Workshop Madrid 2018
Software Engineering and Architecture
Presentation transcript:

Building LabKey with Gradle Susan Hert, Senior Software Developer Building LabKey with Gradle Release 17.2

From Ant to Gradle What’s a Gradle? Why the transition? What will change? How do you transition? What’s the timeline?

An open source build automation system, initially developed for JVM projects, providing: a Groovy-based, domain-specific language flexibility in configuration and build logic dependency management through repositories integration with IntelliJ, TeamCity, etc.

Why the Transition? The ant is knowing and wise, but he doesn't know enough to take a vacation. Clarence Day handle your dependencies.

Why the Transition? Dependency management Building more with less project dependences external dependencies top-level and transitive dependencies handles publishing & retrieving of artifacts Building more with less Shorter, targeted build steps Better up-to-date checks

The Players The build tool Configures all build projects and executes all build logic The artifact builder Publishes artifacts and runs integration tests The artifact repository Stores artifacts (e.g., jar files) for use by builders

What will change? ant build build.xml standard.modules unversioned artifacts external jars in version control IntelliJ project in server ./gradlew deployApp build.gradle settings.gradle versioned artifacts external jars downloaded IntelliJ project at root

How to Transition Command line IntelliJ project set up some properties in gradle.properties file use gradle commands and tasks (targets) IntelliJ project Use project at the root level instead of in server Use Gradle window to dynamically create .iml files Build script conversion (possibly optional) build.xml build.gradle

Gradle Files gradlew settings.gradle build.gradle gradlePlugin The Gradle Wrapper, which does all the work settings.gradle Indicates which modules to include in the build build.gradle Configuration of the build steps gradlePlugin jar file with plugins, tasks and utilities for the LabKey server build gradle.properties Not every module has a build.gradle Next: show projects and tasks commands

Developer Scenarios Initial build Adding a file-based module from LabKey distribution from source Adding a file-based module Adding a Java module Working with IntelliJ Cleaning up Be cautious about combining an ant distribution with a Gradle build

Versioning - Please note All examples here are using latest svn trunk gradlePlugin latest 1.0-SNAPSHOT version In other words, what you see here may not work with a 17.1 version of LabKey.

Initial Build from Distribution Get SVN enlistment (or ant clean) Download distribution Copy to dist directory Pick database ./gradlew :server:pickPg OR ./gradlew :server:pickMSSQL Deploy distribution ./gradlew :server:deployDistribution

Initial Build from Source Get SVN enlistment (or ant clean) Pick database ./gradlew :server:pickPg OR ./gradlew :server:pickMSSQL Deploy Application ./gradlew :server:deployApp

Adding Your Own Module Apply plugins in build.gradle Declare dependencies in build.gradle Deploy module

Building a File-based LabKey Module Apply plugins in build.gradle apply plugin: ‘java’ apply plugin: ‘org.labkey.fileModule’ Declare dependencies in build.gradle dependencies { … } Deploy module (from the module directory) ./gradlew :path:to:module:deployModule

Building a Java-based LabKey Module Apply plugins in build.gradle apply plugin: ‘java’ apply plugin: ‘org.labkey.module’ Declare dependencies in build.gradle dependencies { … } Deploy module (from the module directory) ./gradlew :path:to:module:deployModule Applying plugins to subprojects

IntelliJ & Gradle Project is located at the root directory DO NOT use the default “linking of gradle project” from IntelliJ Instead use the sync operation in the Gradle window

Cleaning Up Tip: Do not engage in unnecessary cleaning.

Build Progression source directory (myModule) ./gradlew module build directory build/modules/myModule ./gradlew deployModule staging and deployment directories build/staging/modules/myModule.module build/deploy/modules/myModule.module

Cleaning Up clean - removes a module’s build directory cleanDeploy - removes the deploy directory cleanStaging - removes the staging directory cleanBuild - removes the entire build directory

Transition Timeline Release 17.1 - Gradle introduced to VCS Version 0.9 of Gradle Plugins has known issues Not all tasks have been converted Documentation still in progress Release 17.2 - Conversion complete Ant and build.xml files will be removed server/.idea directory and *.iml files will be removed

Resources LabKey docs (https://labkey.org/Documentation/wiki-page.view?name=gradleBuild) Gradle docs (https://gradle.org/docs) LabKey forum

From Ant to Gradle

System Overview Source: http://www.jfrog.com