SlideShare a Scribd company logo
Faster Java EE Builds
with Gradle
RYAN CUPRAK
About
 Ryan Cuprak
 @ctjava
 rcuprak@gmail.com
 http://www.cuprak.info
 https://www.linkedin.com/in/rcuprak
Introducing Gradle
• Open source build automation system
• Apache 2.0 License
• Builds upon Apache Ant and Maven
• First released in 2007
• Uses a Groovy-based DSL (not XML)
• Uses directed acyclic graph to determine build order
• Supports multiple languages: Java, C++, C, etc.
• Rich plug-in architecture
• Convention over configuration but easily
customized/adapted
Introducing Gradle
• Build file can be versioned like dependencies.
Ever run Ant 1.9 file with Ant 1.6?
• Background daemon reduces build-time
• Supports incremental builds
• Built-in profiling support
• Build projects in parallel and some tasks*
• Built-in Ant/Maven integration
• Supported central repositories:
• Maven Central
• Jcenter
• Ivy
Build System Evolution
Ant
Maven
Gradle2004
2009
2000
Gradle versus Maven
Feature Gradle Maven
Fully configurable DAG ✅ ❌
Task Exclusion ✅ ❌
Dry Run ✅ ❌
Advanced Task Ordering ✅ ❌
Custom Distributions ✅ ❌
Repository Aware Cache ✅ ❌
Version Conflict Resolution ✅ ❌
File Based Dependencies ✅ ❌
Finalizers ✅ ❌
Custom Dependency Scopes ✅ ❌
ReplaceByRules ✅ ❌
https://gradle.org/maven-vs-gradle
Why Gradle?
Questions
1. Do you need to learn Groovy?
No (Good idea)
2. Do you need to completely refactor your code base?
No
3. Do you need additional IDE plugins?
Maybe
4. Do you need to change your build process?
Depends
5. Do you need to port your entire build system over?
No – can port over individual modules
6. Can you embed custom Ant logic?
Yes
Questions…
7. Must all dependencies originate from a repository?
No
8. Can artifacts be pushed to a repository?
Yes
9. Can Jenkins initiate Gradle builds?
Yes
Why Gradle for Java EE?
Java EE projects are:
 Large
 Complex
 Contain many dependencies
 Ant lacks dependency management
Large Ant files are a nightmare to debug
Maven isn’t flexible
 Custom plugins aren’t the solution
 Evolving slowly
Installation
 Installation similar to Ant/Maven
 Download and install from gradle.org
 Set environment variables:
 GRADLE_HOME
 PATH (to GRADLE_HOME/bin)
 gradle = ant = mvn
Key Gradle Files
Build file build.gradle
Configuration settings settings.gradle
Local settings ~/.gradle/gradle.properties
Local repository (project)/.gradle
build.gradle = pom.xml = build.xml
Gradle Daemon
Gradle daemon is enabled by default
(Disable for continuous build environments!)
Displaying status
gradle –status
Stopping daemon:
gradle –stop
Disabling daemon:
Add org.gradle.daemon=false to ~/.gradle
Project Creation
To start a new project:
 gradle init – creates a new project
 Uses pom.xml if present.
 Imports multi-model projects
 Optionally specify –type <type>
 java-library
 scala-library
 groovy-library
 basic (default) – no src directories created.
 Central repository defaults to jcenter()
https://bintray.com/bintray/jcenter
Project Creation…
 gradle init --type java-library
Default Project Layout
src
main
resources
test
java
resources
build.gradle
settings.gradle
java
project
Initial Gradle File
Command line – listing tasks
gradle –q tasks
------------------------------------------------------------
All tasks runnable from root project
------------------------------------------------------------
Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
buildDependents - Assembles and tests this project and all
projects that depend on it.
buildNeeded - Assembles and tests this project and all projects
it depends on.
classes - Assembles classes 'main'.
clean - Deletes the build directory.
jar - Assembles a jar archive containing the main classes.
testClasses - Assembles classes 'test'.
Tasks Continued…
Build Setup tasks
-----------------
init - Initializes a new Gradle build. [incubating]
wrapper - Generates Gradle wrapper files. [incubating]
Documentation tasks
-------------------
javadoc - Generates Javadoc API documentation for the
main source code.
Tasks Continue…
Help tasks
----------
components - Displays the components produced by root
project 'scratch'. [incubating]
dependencies - Displays all dependencies declared in root
project 'scratch'.
dependencyInsight - Displays the insight into a specific
dependency in root project 'scratch'.
help - Displays a help message.
model - Displays the configuration model of root project
'scratch'. [incubating]
projects - Displays the sub-projects of root project 'scratch'.
properties - Displays the properties of root project 'scratch'.
tasks - Displays the tasks runnable from root project 'scratch'.
Verification tasks
------------------
check - Runs all checks.
test - Runs the unit tests.
Sample Output
gradle build
src
build
scratch-1.0-SNAPSHOT.jar
libs
project
Output
Projects versus Tasks
Project 1 Project 2
Project 3
Task 1
Task 3
Task 2
Depends on
Task 1
Task 2
Depends on
Task 1
Task 3
Task 2
Depends on
Task 3
Depends on
Understanding build.gradle
org.gradle.api.Project
apply(options: Map<String,?>)
buildscript(config: Closure)
dependencies(config: Closure)
configurations(config: Closure)
getDependencies()
getConfigurations()
getAnt()
getName()
getDescription()
getGroup()
getPath()
getVersion()
getLogger()
setDescription(description: String)
setVersion(version: Object)
file(path: Object)
task(args: Map<String,?>,name: String)
Project is an implicit object.
Project.apply plugin: ‘java
Understanding Gradle Tasks
org.gradle.api.Task
dependsOn(tasks: Object…)
doFirst(action: Closure)
doLast(action: Closure)
getActions()
getInputs()
getOutputs()
getAnt()
getDescription()
getEnabled()
getGroup()
setDescription(description: String)
setEnabled(enabled: boolean)
setGroup(group: String)
Tasks are built on the Task object.
Defining Tasks
Task Dependencies
Grouping Tasks
Grouping Tasks
Custom Group
Plugins
Plugin ID Automatically
Applies
Works With Description
java java-base Java compilation/testing
application java,distribution
ear java Java EE Support
maven java,war Maven publishing
war java Assembles WAR files
java-library-
distribution
java, distribution Support for tar/zip
distributions for Java
library.
idea java Generates IDEA files
eclipse java,groovy,
scala
Generates Eclipse files
Standard: https://docs.gradle.org/current/userguide/standard_plugins.html
Third party: https://plugins.gradle.org
Multi-Module Projects
Multi-Module Projects
admin-web
model
myApp
web
mobile-app
build.gradle
gradle.properties
admin-web
model
myApp
web
mobile-app
build.gradle
gradle.properties
master
Hierarchical Layout Flat Layout
Hierarchical Layout: Example Project
ctjava
build.gradle
settings.gradle
ctcore
build.gradle
settings.gradle
ctweb
build.gradle
settings.gradle
migrate
build.gradle
settings.gradle
Hierarchical Layout: Top Level
build.gradle gradle.settings
ctjava
Hierarchical Layout: Second Level
 gradle.settings for ctcore/migrate/ctweb:
rootProject.name = 'ctjava’
 migrate/ctweb dependencies on ctcore
compile project (':ctcore’)
IDE Support
IDE Support
IDE Separate Plugin Java EE Support
IDEA (free) No Yes
IDEA (paid) No Yes
NetBeans Yes Depends
Eclipse Yes Yes
Eclipse Gradle Support
 http://download.eclipse.org/buildship/updates/e46/r
eleases/1.0
NetBeans Gradle Support
Multi-project Java EE projects not recognized.
IntelliJ Support
Legacy Project
NetBeans EE Project to Gradle
File System Project Representation
NetBeans EE Project to Gradle
Java Source
directories
WAR Plugin
Local JARs
NetBeans EE Project to Gradle
Web resource
directory
Java EE
Dependencies
Local JAR
Continued…
WAR Plugin Configuration
Configuration Description
from Adds a file-set to the root of the archive
webInf Adds a file-set to the WEB-INF dir.
classpath Adds a file-set to the WEB-INF/lib dir
webAppDirName The name of the web application source directory, relative
to the project directory.
webXml Copies a file to WEB-INF/web.xml
Recipes
JavaScript Minification
Minification Output
Google Minifier
JavaScript Minification…
 Extend JavaExec Task to invoke Minifier
JavaScript Minification…
gradle -PjsOptimize=true build
Node/Webpack Integration
Node Gradle Plugin
https://github.com/srs/gradle-node-plugin
Supports: NodeJS, Yarn, Grunt, Gulp
Generating JPA Meta-Model
Create custom plugin to run Java Annotation Processor:
implementation-class=JavaAptPlugin
Custom Annotation Processor
Custom annotation processor
Custom Annotation Processor
Custom annotation processor
Custom Annotation Processor:
Build Plugin
Exclude everything
but JPA entities
Custom annotation processor
EAR Projects
Project Output
Contents of EAR
EAR Project
EAR plugin
Provided Scope – Non-WAR Projects
• providedCompile is a configuration on WAR plugin.
• Non-WAR projects must add a custom scope.
jaxb Code Generation
POJOxsd
Generating JAX-WS Client
 Generate JAX-WS client for WSDL using wsimport
 Plugin:
 https://plugins.gradle.org/plugin/me.seeber.wsimport
 Generated source code:
 build/generated-src/wsimport
Generating JAX-WS Client
https://plugins.gradle.org/plugin/me.seeber.wsimport
Generating JAX-WS Client
Generated Source Code
Docker
 Build Docker images from project output:
 Transmode/gradle-docker - http://tinyurl.com/k7o7nab
 Build/publish docker files from build script – not Dockerfile
 bmuschko/gradle-docker-plugin -
http://tinyurl.com/hg4q6jr
 docker-remote-api – interacts with Docker via remote API
 docker-java-application – creates/pushes docker images for java
applications
 Run Docker containers during build
 palantir/gradle-docker - http://tinyurl.com/hpw853h
 docker – building and pushing docker images
 docker-compose - populating placeholders in a docker-compose
template
 docker-run – starting/stopping/status on named images
Building Docker Images
Simple Docker Example – Run
Container
Available Tasks:
• dockerRun
• dockerStop
• dockerRunStatus
• dockerRemoveContainer
Docker & Testing
 Launch PostgreSQL Docker container before unit tests
execute
 Test cleanup:
 Leave container running if any tests fail
 Destroy container if tests succeed
Docker & Testing
Docker Database Testing
Parameter Substitution: persistence.xml
Parameter Substitution: build.gradle
Testing with Arquillian/Selenium
Misc
 View Dependencies:
gradle -q ctweb:dependencies
 Build GUI:
gradle –gui
 Profiling:
gradle –profile
 Dryrun
gradle –m build
Reasons to Convert
 Incremental compilation
 Better dependency management/control
 Customizable without needing plugins
 Supports multiple languages/platforms
 Build system can be versioned
Q&A

More Related Content

What's hot (20)

PPTX
Faster java ee builds with gradle [con4921]
Ryan Cuprak
 
PPTX
Getting Started with Java EE 7
Arun Gupta
 
PPTX
Why Play Framework is fast
Legacy Typesafe (now Lightbend)
 
PDF
Scala play-framework
Abdhesh Kumar
 
PDF
Spring Framework - Core
Dzmitry Naskou
 
PPTX
Next stop: Spring 4
Oleg Tsal-Tsalko
 
PPTX
Don't Wait! Develop Responsive Applications with Java EE7 Instead
WASdev Community
 
PDF
Apache DeltaSpike the CDI toolbox
Antoine Sabot-Durand
 
PPTX
Angular beans
Bessem Hmidi
 
PDF
PUC SE Day 2019 - SpringBoot
Josué Neis
 
PPTX
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
Sam Brannen
 
PPTX
Introduction to Spring Framework
Serhat Can
 
PPTX
Advance java Online Training in Hyderabad
Ugs8008
 
PPTX
Project Presentation on Advance Java
Vikas Goyal
 
PDF
Play vs Grails Smackdown - Devoxx France 2013
Matt Raible
 
PDF
Deployment of WebObjects applications on FreeBSD
WO Community
 
PDF
Play Framework and Activator
Kevin Webber
 
PDF
20151010 my sq-landjavav2a
Ivan Ma
 
PDF
Microservices - java ee vs spring boot and spring cloud
Ben Wilcock
 
PDF
Short intro to scala and the play framework
Felipe
 
Faster java ee builds with gradle [con4921]
Ryan Cuprak
 
Getting Started with Java EE 7
Arun Gupta
 
Why Play Framework is fast
Legacy Typesafe (now Lightbend)
 
Scala play-framework
Abdhesh Kumar
 
Spring Framework - Core
Dzmitry Naskou
 
Next stop: Spring 4
Oleg Tsal-Tsalko
 
Don't Wait! Develop Responsive Applications with Java EE7 Instead
WASdev Community
 
Apache DeltaSpike the CDI toolbox
Antoine Sabot-Durand
 
Angular beans
Bessem Hmidi
 
PUC SE Day 2019 - SpringBoot
Josué Neis
 
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012
Sam Brannen
 
Introduction to Spring Framework
Serhat Can
 
Advance java Online Training in Hyderabad
Ugs8008
 
Project Presentation on Advance Java
Vikas Goyal
 
Play vs Grails Smackdown - Devoxx France 2013
Matt Raible
 
Deployment of WebObjects applications on FreeBSD
WO Community
 
Play Framework and Activator
Kevin Webber
 
20151010 my sq-landjavav2a
Ivan Ma
 
Microservices - java ee vs spring boot and spring cloud
Ben Wilcock
 
Short intro to scala and the play framework
Felipe
 

Viewers also liked (20)

PPTX
Containerless in the Cloud with AWS Lambda
Ryan Cuprak
 
PPTX
Top 50 java ee 7 best practices [con5669]
Ryan Cuprak
 
PPSX
Поисковый отряд им.генерала кузнецова
Sch1935
 
PPTX
Synergy Digital
Beau Barnhart
 
PPTX
Docker and java, at Montréal JUG
Anthony Dahanne
 
PDF
Знакомство с маркетингом от Станислава Маслихина
Oleksandr Dyma
 
DOCX
O rastreio dos transgénicos
AnaGomes40
 
PPTX
Practica de aula innovadora
Edwin Riascos
 
PDF
Donmatías avanza 08 de marzo de 2017
Diego Gomez Gomez
 
PDF
Fibra óptica
JAV_999
 
PPSX
Competencias y habilidades del s xxi
Leonarda Cruz
 
PPT
Eğitim ve Koçlukta Oyun / Oyunlaştırma
Ali Cevat ÜNSAL
 
PPTX
A Collaborative Approach to Teach Software Architecture - SIGCSE 2017
Maurício Aniche
 
DOCX
ΠΕΡΙΛΗΨΗ ΤΟΥ ΒΙΒΛΙΟΥ :Η ΚΑΛΥΒΑ ΤΟΥ ΜΠΑΡΜΠΑ-ΘΩΜΑ ΑΠΟ ΤΗΝ ΑΝΔΡΙΑΝΑ,ΤΑΞΗ Α΄
ΕΥΗ ΚΑΡΟΥΝΙΑ
 
PPTX
Showcase Your Brand in Front of Thousands of Top Digital Marketers
Marketo
 
PPTX
Core java
Sun Technlogies
 
PPTX
Reacciones orgánicas y ácido base (prof. edgar del carpio)
edgar_del_carpio
 
PPTX
04 Strategies to Develop a Better Management Approach
Roberto de Paula Lico Junior
 
Containerless in the Cloud with AWS Lambda
Ryan Cuprak
 
Top 50 java ee 7 best practices [con5669]
Ryan Cuprak
 
Поисковый отряд им.генерала кузнецова
Sch1935
 
Synergy Digital
Beau Barnhart
 
Docker and java, at Montréal JUG
Anthony Dahanne
 
Знакомство с маркетингом от Станислава Маслихина
Oleksandr Dyma
 
O rastreio dos transgénicos
AnaGomes40
 
Practica de aula innovadora
Edwin Riascos
 
Donmatías avanza 08 de marzo de 2017
Diego Gomez Gomez
 
Fibra óptica
JAV_999
 
Competencias y habilidades del s xxi
Leonarda Cruz
 
Eğitim ve Koçlukta Oyun / Oyunlaştırma
Ali Cevat ÜNSAL
 
A Collaborative Approach to Teach Software Architecture - SIGCSE 2017
Maurício Aniche
 
ΠΕΡΙΛΗΨΗ ΤΟΥ ΒΙΒΛΙΟΥ :Η ΚΑΛΥΒΑ ΤΟΥ ΜΠΑΡΜΠΑ-ΘΩΜΑ ΑΠΟ ΤΗΝ ΑΝΔΡΙΑΝΑ,ΤΑΞΗ Α΄
ΕΥΗ ΚΑΡΟΥΝΙΑ
 
Showcase Your Brand in Front of Thousands of Top Digital Marketers
Marketo
 
Core java
Sun Technlogies
 
Reacciones orgánicas y ácido base (prof. edgar del carpio)
edgar_del_carpio
 
04 Strategies to Develop a Better Management Approach
Roberto de Paula Lico Junior
 
Ad

Similar to Faster Java EE Builds with Gradle (20)

PPTX
Gradle 2.breaking stereotypes.
Stfalcon Meetups
 
PPTX
Gradle.Enemy at the gates
Strannik_2013
 
PPTX
Gradle 2.Write once, builde everywhere
Strannik_2013
 
PDF
Gradle
Han Yin
 
PPTX
Сергей Моренец: "Gradle. Write once, build everywhere"
Provectus
 
ODP
Gradle - time for another build
Igor Khotin
 
PPTX
Gradle 2.Breaking stereotypes
Strannik_2013
 
PPTX
Gradle
Jadson Santos
 
PDF
Gradle - time for a new build
Igor Khotin
 
PDF
ICONUK 2015 - Gradle Up!
René Winkelmeyer
 
PDF
Introduction to gradle
NexThoughts Technologies
 
PDF
Gradle - the Enterprise Automation Tool
Izzet Mustafaiev
 
PDF
Gradle
Andrii Khaisin
 
PDF
Why gradle
Sercan Karaoglu
 
ODP
Gradle: The Build System you have been waiting for!
Corneil du Plessis
 
PDF
Gradle - Build system evolved
Bhagwat Kumar
 
PDF
Gradle Introduction
Dmitry Buzdin
 
PDF
Gradleintroduction 111010130329-phpapp01
Tino Isnich
 
PDF
Hands on the Gradle
Matthias Käppler
 
Gradle 2.breaking stereotypes.
Stfalcon Meetups
 
Gradle.Enemy at the gates
Strannik_2013
 
Gradle 2.Write once, builde everywhere
Strannik_2013
 
Gradle
Han Yin
 
Сергей Моренец: "Gradle. Write once, build everywhere"
Provectus
 
Gradle - time for another build
Igor Khotin
 
Gradle 2.Breaking stereotypes
Strannik_2013
 
Gradle - time for a new build
Igor Khotin
 
ICONUK 2015 - Gradle Up!
René Winkelmeyer
 
Introduction to gradle
NexThoughts Technologies
 
Gradle - the Enterprise Automation Tool
Izzet Mustafaiev
 
Why gradle
Sercan Karaoglu
 
Gradle: The Build System you have been waiting for!
Corneil du Plessis
 
Gradle - Build system evolved
Bhagwat Kumar
 
Gradle Introduction
Dmitry Buzdin
 
Gradleintroduction 111010130329-phpapp01
Tino Isnich
 
Hands on the Gradle
Matthias Käppler
 
Ad

More from Ryan Cuprak (13)

PPTX
Jakarta EE Test Strategies (2022)
Ryan Cuprak
 
PPTX
DIY Home Weather Station (Devoxx Poland 2023)
Ryan Cuprak
 
PDF
Polygot Java EE on the GraalVM
Ryan Cuprak
 
PPTX
Exploring Java Heap Dumps (Oracle Code One 2018)
Ryan Cuprak
 
PPTX
Java script nirvana in netbeans [con5679]
Ryan Cuprak
 
PPTX
Jms deep dive [con4864]
Ryan Cuprak
 
PPTX
Developing in the Cloud
Ryan Cuprak
 
PPTX
Combining R With Java For Data Analysis (Devoxx UK 2015 Session)
Ryan Cuprak
 
PPTX
Hybrid Mobile Development with Apache Cordova and
Ryan Cuprak
 
PPTX
JavaFX Versus HTML5 - JavaOne 2014
Ryan Cuprak
 
PPTX
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
Ryan Cuprak
 
PPTX
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Ryan Cuprak
 
PPTX
JavaOne 2013: Organizing Your Local Community
Ryan Cuprak
 
Jakarta EE Test Strategies (2022)
Ryan Cuprak
 
DIY Home Weather Station (Devoxx Poland 2023)
Ryan Cuprak
 
Polygot Java EE on the GraalVM
Ryan Cuprak
 
Exploring Java Heap Dumps (Oracle Code One 2018)
Ryan Cuprak
 
Java script nirvana in netbeans [con5679]
Ryan Cuprak
 
Jms deep dive [con4864]
Ryan Cuprak
 
Developing in the Cloud
Ryan Cuprak
 
Combining R With Java For Data Analysis (Devoxx UK 2015 Session)
Ryan Cuprak
 
Hybrid Mobile Development with Apache Cordova and
Ryan Cuprak
 
JavaFX Versus HTML5 - JavaOne 2014
Ryan Cuprak
 
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
Ryan Cuprak
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Ryan Cuprak
 
JavaOne 2013: Organizing Your Local Community
Ryan Cuprak
 

Recently uploaded (20)

PDF
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
PPTX
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
PDF
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
PDF
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
PDF
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
PPTX
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
PPTX
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
PDF
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
PPTX
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
PPTX
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 
PDF
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
PDF
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
PDF
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
PDF
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PDF
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Tally software_Introduction_Presentation
AditiBansal54083
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 

Faster Java EE Builds with Gradle