EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to...
Transcript of EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to...
![Page 1: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/1.jpg)
EclipseCon US 2016 Benjamin Muschko, Principal Engineer
Buildship
![Page 2: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/2.jpg)
![Page 3: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/3.jpg)
Gradle is a Modern Open-Source Polyglot Enterprise Build Automation System
http://gradle.org/migrating-a-maven-build-to-gradle/
![Page 4: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/4.jpg)
Gradle - Background
![Page 5: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/5.jpg)
The Build
Integration Testing
Dependency Mgmt.
Compile
Code Generation
Unit Testing
Deploy
Package Mgmt. Custom
ExtensionsStandardization
![Page 6: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/6.jpg)
Polyglot
![Page 7: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/7.jpg)
![Page 8: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/8.jpg)
Customers
![Page 9: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/9.jpg)
Adoption
more than 1’100’000 downloads of Gradle during the month of December 2015
![Page 10: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/10.jpg)
5All rights reserved. 2014 © ZeroTurnaround OÜ
Sample population of 2164 Java professionals, sample error 2.1%
![Page 11: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/11.jpg)
Books
![Page 12: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/12.jpg)
TerminologyProject
TaskTask
Project Project
Task Depen-dency
![Page 13: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/13.jpg)
IDE-Integration - Vision
![Page 14: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/14.jpg)
Make Eclipse more powerful
- extend what you can do from within Eclipse - integrate deeply into Eclipse
![Page 15: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/15.jpg)
Have a single truth of build logic
- put all execution logic into the build - derive all information from the build model
![Page 16: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/16.jpg)
In a unified build,Gradle is the single source of build logic.
GradleLauncher
Eclipse
Tooling API
Server(daemon)
Cmd Line(developer) (build master)
(cont integ)
![Page 17: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/17.jpg)
• Proxy for embedding Gradle
• Extension mechanism to provide custom models
Tooling API
Client VM with gradle-tooling-api.jar
Gradle Daemon for Gradle build
get build models
invoke build tasksinvoke tests
![Page 18: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/18.jpg)
Tooling API• Backward & forward compatible
From 1.0 to 2.8
• Runtime Isolation Separate daemon process
• High Level Services Build Cancellation, Continuous Mode, Test Execution, etc.
• Build Event Model Life-cycle events, task events, test events
![Page 19: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/19.jpg)
Demo
![Page 20: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/20.jpg)
Coming soon
![Page 21: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/21.jpg)
In the works• Project dependency substitution
• Debugging tests run through Gradle from IDE
• Views for dependency tree and applied plugins
• Support for WTP
https://github.com/eclipse/buildship/tree/master/docs/stories
![Page 22: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/22.jpg)
Preview
![Page 23: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/23.jpg)
Resources
![Page 24: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/24.jpg)
https://projects.eclipse.org/projects/tools.buildship https://github.com/eclipse/buildship
![Page 25: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/25.jpg)
👍
👍
👍
![Page 26: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/26.jpg)
Historyhttps://gradle.org/buildship-from-its-inception-to-its-inclusion-in-eclipse-mars-1-2/
![Page 27: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/27.jpg)
• Data of every build is collected
• CI or local
• From every location
• Shared with your colleagues / community
• Available at gradle.com
Gradle.com
![Page 28: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/28.jpg)
hansd — SpinDoctor
Changed Strategy of configuration ‘:compile after it has been resolved inLorem ipsum dolornum 3.7
build.gradle
Test failed: is failingA wrong JVM is used to run the tests??
see the stack trace
SpinDoctor build
Hans’ Jenkins minion 1 hour agoGradle 2.7250 second build
Warning Warning Failure
see the full commit
Hans committed 5 minutes agoMaster / 3e320bUpdating code
Deprecation warnings (compileJava) foundLorem Ipsum dolornum 678.8
see the stack trace
see the stack trace
SpinDoctor build
Dynamic dependency: org.apache.commons:commons-lang:3.3+ from 3.3.2 vs 3.3.3 for this build.
see 3 more changes from related
Dynamic dependency: org.apache.commons:commons-lang:3.3+ from 3.3.2 vs. 3.3.3 for this build.
SpinDoctor build
DateTest.testDa
compile
CompileJava
Gradle.com
![Page 30: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/30.jpg)
?
![Page 31: EclipseCon US 2016 Buildship 16to9 · • Proxy for embedding Gradle • Extension mechanism to provide custom models Tooling API Client VM with gradle-tooling-api.jar Gradle Daemon](https://reader034.fdocuments.us/reader034/viewer/2022042309/5ed68f115cd0d56eef02e86e/html5/thumbnails/31.jpg)
Evaluate the Sessions
Sign in and vote at eclipsecon.org
- 1 + 10