SlideShare a Scribd company logo
Building tool of new generationBuildR
BuildRExtension of RakeApache project
Step 1. Define projectdefine 'killer-app' do project.version= '0.1.0' end
Step 2. Add dependenciesrepositories.remote << 'http://www.ibiblio.org/maven2/'repositories.remote << 'http://maven.alfresco.com/nexus/content/groups/public/’LIBS = struct(          :alfresco_repo   => 'org.alfresco:alfresco-repository:jar:labs:2.1.0',          :alfresco_core   => 'org.alfresco:alfresco-core:jar:labs:2.1.0',          :alfresco_remote => 'org.alfresco:alfresco-remote-api:jar:labs:2.1.0',          :apache_collections => 'commons-collections:commons-collections:jar:3.1',          :apache_beanutils => 'commons-beanutils:commons-beanutils:jar:1.7.0',)

Recommended for you

Nike pop up habitat
Nike pop up   habitatNike pop up   habitat
Nike pop up habitat

1. Habitat consists of several components including Habitat Studio for packaging applications, Habitat Plans for instructions to install applications, and Habitat Depot for uploading and downloading application packages. 2. The packaging process starts with creating a Plan which defines how to build an application from source code using Bash. The built package is then uploaded to the Depot. 3. At runtime, the Habitat Supervisor manages application behavior using the predefined Plan. It provides service discovery, deployment coordination, and a REST API for management.

 
by Chef
chef-softwareapplication automationdevops
London Community Summit - Chef at SkyBet
London Community Summit - Chef at SkyBetLondon Community Summit - Chef at SkyBet
London Community Summit - Chef at SkyBet

This document discusses how Chef configuration management is used centrally at Sky Betting and Gaming to provide tools and services for developers to deploy applications. It describes how the Platform Services team started by "fixing disaster recovery" and introduced Chef. Key aspects of their process include using Chef configuration for infrastructure, applications, CI pipelines, and integration tests. The document also outlines their use of a tool called pscli, which acts as "glue" by pulling Docker images containing tools like ChefDK, Terraform, and Packer and executing commands in containers to perform tasks like generating cookbooks, running Kitchen tests, and applying Terraform configurations.

 
by Chef
chef-softwarechef community summit london
DIY Java & Kubernetes
DIY Java & KubernetesDIY Java & Kubernetes
DIY Java & Kubernetes

1) The document discusses using Spring Boot, Docker, and Kubernetes for Java microservices. 2) It provides instructions on building a Spring Boot app as a Docker container and deploying it to Kubernetes. 3) Demos are shown for building a sample app, running it on a local Kubernetes cluster, and splitting the app into microservices deployed to Kubernetes.

mucroserviceskubernetesjava
Step 3. Compiledefine 'al', :layout =>  ab_layout doproject.version = 1.5compile.options.target = '1.5'compile.with LIBSend
Step 4. Packagedefine 'al', :layout =>  ab_layout doproject.version = 1.5compile.options.target = '1.5'compile.with LIBS  package :jarend$ buildr package
Step 5. Directory structureab_layout = Layout.newab_layout[:source, :main, :java] = 'src'ab_layout[:source, :main, :resources] = 'resources'define 'al', :layout =>  ab_layout doproject.version = 1.5compile.options.target = '1.5'compile.with LIBS  package :jarend
Step 6. Add custom task define 'al', :layout =>  ab_layout doproject.version = 1.5compile.options.target = '1.5'compile.with LIBS  task :run => :compile do    system 'java -cp target/classes org.apache.killer.Main'  endend

Recommended for you

How to successfully migrate to bazel from maven or gradle
How to successfully migrate to bazel from maven or gradleHow to successfully migrate to bazel from maven or gradle
How to successfully migrate to bazel from maven or gradle

When your code base and dependency graph become big you should consider moving to bazel as your build tool. It's both extremely fast and highly accurate. You'll need to decide and think about 5 key points in order to achieve a successful migration.

bazelbuild toolci
London Community Summit 2016 - Fresh New Chef Stuff
London Community Summit 2016 - Fresh New Chef StuffLondon Community Summit 2016 - Fresh New Chef Stuff
London Community Summit 2016 - Fresh New Chef Stuff

What's new in Chef presented at EMEA Community Summit in London, October 2016 by Thom May and Tim Smith

 
by Chef
chef community summit londonchef-software
Compliance Automation with Inspec Part 2
Compliance Automation with Inspec Part 2Compliance Automation with Inspec Part 2
Compliance Automation with Inspec Part 2

Part 2 of Compliance Automation with Inspec Overview presented on 9/29 at TSA DevOps Transformation Day

 
by Chef
Step 7. Testdefine 'al', :layout =>  ab_layout doproject.version = 1.5compile.options.target = '1.5'compile.with LIBStest.with'commons-	ollections:commons- collections:jar:3.2' test.using:testngend
Step 8. Call java task :generate do   p 'calling ant..'Java.org.apache.tools.ant.Main.main( ['-file',            'build.xml', 'generate', '-Dserver=localhost'] )  end
LanguagesJavaScalaGroovyRuby
Other stuffInteractive Shell (JavaRebelsupport)IDE project file generationCobertura, Emma, Jdepend

Recommended for you

How to Build & Deploy a HelloWorld API function using Java on OpenShift in...
How to Build & Deploy a HelloWorld API function using Java on OpenShift in...How to Build & Deploy a HelloWorld API function using Java on OpenShift in...
How to Build & Deploy a HelloWorld API function using Java on OpenShift in...

Tutorial for OpenShift beginners: Use Eclipse IDE to develop and deploy a Java based HelloWorld API function in 8 steps.

javaopenshifthello world
How to successfully migrate to Bazel from Maven or Gradle - Riga Dev Days
How to successfully migrate to Bazel from Maven or Gradle - Riga Dev DaysHow to successfully migrate to Bazel from Maven or Gradle - Riga Dev Days
How to successfully migrate to Bazel from Maven or Gradle - Riga Dev Days

At Wix We decided to switch to the Bazel build tool. The result was a dramatic improvement in performance and accuracy. As Wix Backend grew exponentially with more than 700 micro-services, it became obvious our build times on Maven have been slowing us down. We decided to switch to the Bazel build tool while harnessing the “remote build execution” feature. The result was a dramatic improvement in performance and accuracy of builds. In this talk, I will share with you how to achieve a successful migration to Bazel from Maven or Gradle, focusing on 5 important areas you have to think about and decide on the right approach for you, ranging from choosing the right build unit granularity to remote caching best practices. I will also describe and demonstrate some of the available tools in the eco-system that help with the migration and with making everyday work easier.

javamavenbazel
Building scala with bazel
Building scala with bazelBuilding scala with bazel
Building scala with bazel

The document discusses using Bazel for building Scala projects. It begins with an overview of Bazel and how it uses small targets and rules to build code more incrementally and in parallel compared to tools like Maven and Gradle. It then covers the rules_scala plugin, which provides rules for compiling Scala code into JARs and running tests. Features of rules_scala like dependency management and support for multiple Scala versions are also summarized. Overall the document promotes Bazel and rules_scala as enabling significantly faster builds of large Scala codebases.

bazelscalamaven

More Related Content

What's hot

Test Kitchen and Infrastructure as Code
Test Kitchen and Infrastructure as CodeTest Kitchen and Infrastructure as Code
Test Kitchen and Infrastructure as Code
Cybera Inc.
 
Lucene application
Lucene applicationLucene application
Lucene application
jagruti_bhudiya
 
Painless Deployment with Capistrano
Painless Deployment with CapistranoPainless Deployment with Capistrano
Painless Deployment with Capistrano
Nick Kugaevsky
 
Nike pop up habitat
Nike pop up   habitatNike pop up   habitat
Nike pop up habitat
Chef
 
London Community Summit - Chef at SkyBet
London Community Summit - Chef at SkyBetLondon Community Summit - Chef at SkyBet
London Community Summit - Chef at SkyBet
Chef
 
DIY Java & Kubernetes
DIY Java & KubernetesDIY Java & Kubernetes
DIY Java & Kubernetes
Pance Cavkovski
 
How to successfully migrate to bazel from maven or gradle
How to successfully migrate to bazel from maven or gradleHow to successfully migrate to bazel from maven or gradle
How to successfully migrate to bazel from maven or gradle
Natan Silnitsky
 
London Community Summit 2016 - Fresh New Chef Stuff
London Community Summit 2016 - Fresh New Chef StuffLondon Community Summit 2016 - Fresh New Chef Stuff
London Community Summit 2016 - Fresh New Chef Stuff
Chef
 
Compliance Automation with Inspec Part 2
Compliance Automation with Inspec Part 2Compliance Automation with Inspec Part 2
Compliance Automation with Inspec Part 2
Chef
 
How to Build & Deploy a HelloWorld API function using Java on OpenShift in...
How to Build & Deploy a HelloWorld API function using Java on OpenShift in...How to Build & Deploy a HelloWorld API function using Java on OpenShift in...
How to Build & Deploy a HelloWorld API function using Java on OpenShift in...
Jan Vosecky
 
How to successfully migrate to Bazel from Maven or Gradle - Riga Dev Days
How to successfully migrate to Bazel from Maven or Gradle - Riga Dev DaysHow to successfully migrate to Bazel from Maven or Gradle - Riga Dev Days
How to successfully migrate to Bazel from Maven or Gradle - Riga Dev Days
Natan Silnitsky
 
Building scala with bazel
Building scala with bazelBuilding scala with bazel
Building scala with bazel
Natan Silnitsky
 
Compliance Automation with Inspec Part 4
Compliance Automation with Inspec Part 4Compliance Automation with Inspec Part 4
Compliance Automation with Inspec Part 4
Chef
 
Fastlane - Automation and Continuous Delivery for iOS Apps
Fastlane - Automation and Continuous Delivery for iOS AppsFastlane - Automation and Continuous Delivery for iOS Apps
Fastlane - Automation and Continuous Delivery for iOS Apps
Sarath C
 
London Community Summit - Habitat 2016
London Community Summit - Habitat 2016London Community Summit - Habitat 2016
London Community Summit - Habitat 2016
Sarah Richards
 
Vagrant introduction for Developers
Vagrant introduction for DevelopersVagrant introduction for Developers
Vagrant introduction for Developers
Antons Kranga
 
What's new on Laravel 5.5
What's new on Laravel 5.5What's new on Laravel 5.5
What's new on Laravel 5.5
Glend Maatita
 
ActiveLAMP Process
ActiveLAMP ProcessActiveLAMP Process
ActiveLAMP Process
Tom Friedhof
 
Hacking Maven Linux day 2017
Hacking Maven Linux day 2017Hacking Maven Linux day 2017
Hacking Maven Linux day 2017
Massimiliano Dessì
 
How to successfully migrate to Bazel from Maven or Gradle - JeeConf
How to successfully migrate to Bazel from Maven or Gradle - JeeConfHow to successfully migrate to Bazel from Maven or Gradle - JeeConf
How to successfully migrate to Bazel from Maven or Gradle - JeeConf
Natan Silnitsky
 

What's hot (20)

Test Kitchen and Infrastructure as Code
Test Kitchen and Infrastructure as CodeTest Kitchen and Infrastructure as Code
Test Kitchen and Infrastructure as Code
 
Lucene application
Lucene applicationLucene application
Lucene application
 
Painless Deployment with Capistrano
Painless Deployment with CapistranoPainless Deployment with Capistrano
Painless Deployment with Capistrano
 
Nike pop up habitat
Nike pop up   habitatNike pop up   habitat
Nike pop up habitat
 
London Community Summit - Chef at SkyBet
London Community Summit - Chef at SkyBetLondon Community Summit - Chef at SkyBet
London Community Summit - Chef at SkyBet
 
DIY Java & Kubernetes
DIY Java & KubernetesDIY Java & Kubernetes
DIY Java & Kubernetes
 
How to successfully migrate to bazel from maven or gradle
How to successfully migrate to bazel from maven or gradleHow to successfully migrate to bazel from maven or gradle
How to successfully migrate to bazel from maven or gradle
 
London Community Summit 2016 - Fresh New Chef Stuff
London Community Summit 2016 - Fresh New Chef StuffLondon Community Summit 2016 - Fresh New Chef Stuff
London Community Summit 2016 - Fresh New Chef Stuff
 
Compliance Automation with Inspec Part 2
Compliance Automation with Inspec Part 2Compliance Automation with Inspec Part 2
Compliance Automation with Inspec Part 2
 
How to Build & Deploy a HelloWorld API function using Java on OpenShift in...
How to Build & Deploy a HelloWorld API function using Java on OpenShift in...How to Build & Deploy a HelloWorld API function using Java on OpenShift in...
How to Build & Deploy a HelloWorld API function using Java on OpenShift in...
 
How to successfully migrate to Bazel from Maven or Gradle - Riga Dev Days
How to successfully migrate to Bazel from Maven or Gradle - Riga Dev DaysHow to successfully migrate to Bazel from Maven or Gradle - Riga Dev Days
How to successfully migrate to Bazel from Maven or Gradle - Riga Dev Days
 
Building scala with bazel
Building scala with bazelBuilding scala with bazel
Building scala with bazel
 
Compliance Automation with Inspec Part 4
Compliance Automation with Inspec Part 4Compliance Automation with Inspec Part 4
Compliance Automation with Inspec Part 4
 
Fastlane - Automation and Continuous Delivery for iOS Apps
Fastlane - Automation and Continuous Delivery for iOS AppsFastlane - Automation and Continuous Delivery for iOS Apps
Fastlane - Automation and Continuous Delivery for iOS Apps
 
London Community Summit - Habitat 2016
London Community Summit - Habitat 2016London Community Summit - Habitat 2016
London Community Summit - Habitat 2016
 
Vagrant introduction for Developers
Vagrant introduction for DevelopersVagrant introduction for Developers
Vagrant introduction for Developers
 
What's new on Laravel 5.5
What's new on Laravel 5.5What's new on Laravel 5.5
What's new on Laravel 5.5
 
ActiveLAMP Process
ActiveLAMP ProcessActiveLAMP Process
ActiveLAMP Process
 
Hacking Maven Linux day 2017
Hacking Maven Linux day 2017Hacking Maven Linux day 2017
Hacking Maven Linux day 2017
 
How to successfully migrate to Bazel from Maven or Gradle - JeeConf
How to successfully migrate to Bazel from Maven or Gradle - JeeConfHow to successfully migrate to Bazel from Maven or Gradle - JeeConf
How to successfully migrate to Bazel from Maven or Gradle - JeeConf
 

Viewers also liked

Jug Intro 12
Jug Intro 12Jug Intro 12
Jug Intro 12
Dmitry Buzdin
 
Ruslan Platonov - Transactions
Ruslan Platonov - TransactionsRuslan Platonov - Transactions
Ruslan Platonov - Transactions
Dmitry Buzdin
 
Java Puzzlers
Java PuzzlersJava Puzzlers
Java Puzzlers
Dmitry Buzdin
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
Dmitry Buzdin
 
Poor Man's Functional Programming
Poor Man's Functional ProgrammingPoor Man's Functional Programming
Poor Man's Functional Programming
Dmitry Buzdin
 
Mobile app development 12 13 y1 ict ssp l17 rev
Mobile app development 12 13 y1 ict ssp l17 revMobile app development 12 13 y1 ict ssp l17 rev
Mobile app development 12 13 y1 ict ssp l17 rev
Miles Berry
 
Dart Workshop
Dart WorkshopDart Workshop
Dart Workshop
Dmitry Buzdin
 
Whats New in Java 8
Whats New in Java 8Whats New in Java 8
Whats New in Java 8
Dmitry Buzdin
 
Big Data Processing Using Hadoop Infrastructure
Big Data Processing Using Hadoop InfrastructureBig Data Processing Using Hadoop Infrastructure
Big Data Processing Using Hadoop Infrastructure
Dmitry Buzdin
 

Viewers also liked (9)

Jug Intro 12
Jug Intro 12Jug Intro 12
Jug Intro 12
 
Ruslan Platonov - Transactions
Ruslan Platonov - TransactionsRuslan Platonov - Transactions
Ruslan Platonov - Transactions
 
Java Puzzlers
Java PuzzlersJava Puzzlers
Java Puzzlers
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
 
Poor Man's Functional Programming
Poor Man's Functional ProgrammingPoor Man's Functional Programming
Poor Man's Functional Programming
 
Mobile app development 12 13 y1 ict ssp l17 rev
Mobile app development 12 13 y1 ict ssp l17 revMobile app development 12 13 y1 ict ssp l17 rev
Mobile app development 12 13 y1 ict ssp l17 rev
 
Dart Workshop
Dart WorkshopDart Workshop
Dart Workshop
 
Whats New in Java 8
Whats New in Java 8Whats New in Java 8
Whats New in Java 8
 
Big Data Processing Using Hadoop Infrastructure
Big Data Processing Using Hadoop InfrastructureBig Data Processing Using Hadoop Infrastructure
Big Data Processing Using Hadoop Infrastructure
 

Similar to Build r

Docker for Ruby Developers
Docker for Ruby DevelopersDocker for Ruby Developers
Docker for Ruby Developers
Aptible
 
Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부
Hyun-Mook Choi
 
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer ToolsDevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
Amazon Web Services
 
Maven 2.0 - Project management and comprehension tool
Maven 2.0 - Project management and comprehension toolMaven 2.0 - Project management and comprehension tool
Maven 2.0 - Project management and comprehension tool
elliando dias
 
Sbt, idea and eclipse
Sbt, idea and eclipseSbt, idea and eclipse
Sbt, idea and eclipse
Mike Slinn
 
Kubernetes Java Operator
Kubernetes Java OperatorKubernetes Java Operator
Kubernetes Java Operator
Anthony Dahanne
 
Meetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdfMeetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdf
Red Hat
 
Core Android
Core AndroidCore Android
Core Android
Dominik Helleberg
 
Tutorial 1: Your First Science App - Araport Developer Workshop
Tutorial 1: Your First Science App - Araport Developer WorkshopTutorial 1: Your First Science App - Araport Developer Workshop
Tutorial 1: Your First Science App - Araport Developer Workshop
Vivek Krishnakumar
 
OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)
Jooho Lee
 
20091112 - Mars Jug - Apache Maven
20091112 - Mars Jug - Apache Maven20091112 - Mars Jug - Apache Maven
20091112 - Mars Jug - Apache Maven
Arnaud Héritier
 
Using Maven2
Using Maven2Using Maven2
Using Maven2
elliando dias
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
Sandeep Chawla
 
What's New in AppFuse 2.0
What's New in AppFuse 2.0What's New in AppFuse 2.0
What's New in AppFuse 2.0
Matt Raible
 
Get started with AAR
Get started with AARGet started with AAR
Get started with AAR
René Mertins
 
Bower & Grunt - A practical workflow
Bower & Grunt - A practical workflowBower & Grunt - A practical workflow
Bower & Grunt - A practical workflow
Riccardo Coppola
 
Quick Start: ActiveScaffold
Quick Start: ActiveScaffoldQuick Start: ActiveScaffold
Quick Start: ActiveScaffold
David Keener
 
Control your deployments with Capistrano
Control your deployments with CapistranoControl your deployments with Capistrano
Control your deployments with Capistrano
Ramazan K
 
Openshift cheat rhce_r3v1 rhce
Openshift cheat rhce_r3v1 rhceOpenshift cheat rhce_r3v1 rhce
Openshift cheat rhce_r3v1 rhce
Darnette A
 
Maven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patternsMaven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patterns
elliando dias
 

Similar to Build r (20)

Docker for Ruby Developers
Docker for Ruby DevelopersDocker for Ruby Developers
Docker for Ruby Developers
 
Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부
 
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer ToolsDevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
 
Maven 2.0 - Project management and comprehension tool
Maven 2.0 - Project management and comprehension toolMaven 2.0 - Project management and comprehension tool
Maven 2.0 - Project management and comprehension tool
 
Sbt, idea and eclipse
Sbt, idea and eclipseSbt, idea and eclipse
Sbt, idea and eclipse
 
Kubernetes Java Operator
Kubernetes Java OperatorKubernetes Java Operator
Kubernetes Java Operator
 
Meetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdfMeetup 2022 - APIs with Quarkus.pdf
Meetup 2022 - APIs with Quarkus.pdf
 
Core Android
Core AndroidCore Android
Core Android
 
Tutorial 1: Your First Science App - Araport Developer Workshop
Tutorial 1: Your First Science App - Araport Developer WorkshopTutorial 1: Your First Science App - Araport Developer Workshop
Tutorial 1: Your First Science App - Araport Developer Workshop
 
OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)
 
20091112 - Mars Jug - Apache Maven
20091112 - Mars Jug - Apache Maven20091112 - Mars Jug - Apache Maven
20091112 - Mars Jug - Apache Maven
 
Using Maven2
Using Maven2Using Maven2
Using Maven2
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
 
What's New in AppFuse 2.0
What's New in AppFuse 2.0What's New in AppFuse 2.0
What's New in AppFuse 2.0
 
Get started with AAR
Get started with AARGet started with AAR
Get started with AAR
 
Bower & Grunt - A practical workflow
Bower & Grunt - A practical workflowBower & Grunt - A practical workflow
Bower & Grunt - A practical workflow
 
Quick Start: ActiveScaffold
Quick Start: ActiveScaffoldQuick Start: ActiveScaffold
Quick Start: ActiveScaffold
 
Control your deployments with Capistrano
Control your deployments with CapistranoControl your deployments with Capistrano
Control your deployments with Capistrano
 
Openshift cheat rhce_r3v1 rhce
Openshift cheat rhce_r3v1 rhceOpenshift cheat rhce_r3v1 rhce
Openshift cheat rhce_r3v1 rhce
 
Maven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patternsMaven 2.0 - Improve your build patterns
Maven 2.0 - Improve your build patterns
 

More from Dmitry Buzdin

How Payment Cards Really Work?
How Payment Cards Really Work?How Payment Cards Really Work?
How Payment Cards Really Work?
Dmitry Buzdin
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
Dmitry Buzdin
 
How to grow your own Microservice?
How to grow your own Microservice?How to grow your own Microservice?
How to grow your own Microservice?
Dmitry Buzdin
 
How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?
Dmitry Buzdin
 
Delivery Pipeline for Windows Machines
Delivery Pipeline for Windows MachinesDelivery Pipeline for Windows Machines
Delivery Pipeline for Windows Machines
Dmitry Buzdin
 
JOOQ and Flyway
JOOQ and FlywayJOOQ and Flyway
JOOQ and Flyway
Dmitry Buzdin
 
Developing Useful APIs
Developing Useful APIsDeveloping Useful APIs
Developing Useful APIs
Dmitry Buzdin
 
Архитектура Ленты на Одноклассниках
Архитектура Ленты на ОдноклассникахАрхитектура Ленты на Одноклассниках
Архитектура Ленты на Одноклассниках
Dmitry Buzdin
 
Riding Redis @ask.fm
Riding Redis @ask.fmRiding Redis @ask.fm
Riding Redis @ask.fm
Dmitry Buzdin
 
Rubylight JUG Contest Results Part II
Rubylight JUG Contest Results Part IIRubylight JUG Contest Results Part II
Rubylight JUG Contest Results Part II
Dmitry Buzdin
 
Rubylight Pattern-Matching Solutions
Rubylight Pattern-Matching SolutionsRubylight Pattern-Matching Solutions
Rubylight Pattern-Matching Solutions
Dmitry Buzdin
 
Rubylight programming contest
Rubylight programming contestRubylight programming contest
Rubylight programming contest
Dmitry Buzdin
 
Continuous Delivery
Continuous Delivery Continuous Delivery
Continuous Delivery
Dmitry Buzdin
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
Dmitry Buzdin
 
Thread Dump Analysis
Thread Dump AnalysisThread Dump Analysis
Thread Dump Analysis
Dmitry Buzdin
 
Pragmatic Java Test Automation
Pragmatic Java Test AutomationPragmatic Java Test Automation
Pragmatic Java Test Automation
Dmitry Buzdin
 
Mlocjs buzdin
Mlocjs buzdinMlocjs buzdin
Mlocjs buzdin
Dmitry Buzdin
 
Web polyglot programming
Web polyglot programmingWeb polyglot programming
Web polyglot programming
Dmitry Buzdin
 
Code Structural Analysis
Code Structural AnalysisCode Structural Analysis
Code Structural Analysis
Dmitry Buzdin
 
Google Guava
Google GuavaGoogle Guava
Google Guava
Dmitry Buzdin
 

More from Dmitry Buzdin (20)

How Payment Cards Really Work?
How Payment Cards Really Work?How Payment Cards Really Work?
How Payment Cards Really Work?
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
 
How to grow your own Microservice?
How to grow your own Microservice?How to grow your own Microservice?
How to grow your own Microservice?
 
How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?
 
Delivery Pipeline for Windows Machines
Delivery Pipeline for Windows MachinesDelivery Pipeline for Windows Machines
Delivery Pipeline for Windows Machines
 
JOOQ and Flyway
JOOQ and FlywayJOOQ and Flyway
JOOQ and Flyway
 
Developing Useful APIs
Developing Useful APIsDeveloping Useful APIs
Developing Useful APIs
 
Архитектура Ленты на Одноклассниках
Архитектура Ленты на ОдноклассникахАрхитектура Ленты на Одноклассниках
Архитектура Ленты на Одноклассни��ах
 
Riding Redis @ask.fm
Riding Redis @ask.fmRiding Redis @ask.fm
Riding Redis @ask.fm
 
Rubylight JUG Contest Results Part II
Rubylight JUG Contest Results Part IIRubylight JUG Contest Results Part II
Rubylight JUG Contest Results Part II
 
Rubylight Pattern-Matching Solutions
Rubylight Pattern-Matching SolutionsRubylight Pattern-Matching Solutions
Rubylight Pattern-Matching Solutions
 
Rubylight programming contest
Rubylight programming contestRubylight programming contest
Rubylight programming contest
 
Continuous Delivery
Continuous Delivery Continuous Delivery
Continuous Delivery
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Thread Dump Analysis
Thread Dump AnalysisThread Dump Analysis
Thread Dump Analysis
 
Pragmatic Java Test Automation
Pragmatic Java Test AutomationPragmatic Java Test Automation
Pragmatic Java Test Automation
 
Mlocjs buzdin
Mlocjs buzdinMlocjs buzdin
Mlocjs buzdin
 
Web polyglot programming
Web polyglot programmingWeb polyglot programming
Web polyglot programming
 
Code Structural Analysis
Code Structural AnalysisCode Structural Analysis
Code Structural Analysis
 
Google Guava
Google GuavaGoogle Guava
Google Guava
 

Build r

  • 1. Building tool of new generationBuildR
  • 3. Step 1. Define projectdefine 'killer-app' do project.version= '0.1.0' end
  • 4. Step 2. Add dependenciesrepositories.remote << 'http://www.ibiblio.org/maven2/'repositories.remote << 'http://maven.alfresco.com/nexus/content/groups/public/’LIBS = struct( :alfresco_repo => 'org.alfresco:alfresco-repository:jar:labs:2.1.0', :alfresco_core => 'org.alfresco:alfresco-core:jar:labs:2.1.0', :alfresco_remote => 'org.alfresco:alfresco-remote-api:jar:labs:2.1.0', :apache_collections => 'commons-collections:commons-collections:jar:3.1', :apache_beanutils => 'commons-beanutils:commons-beanutils:jar:1.7.0',)
  • 5. Step 3. Compiledefine 'al', :layout => ab_layout doproject.version = 1.5compile.options.target = '1.5'compile.with LIBSend
  • 6. Step 4. Packagedefine 'al', :layout => ab_layout doproject.version = 1.5compile.options.target = '1.5'compile.with LIBS package :jarend$ buildr package
  • 7. Step 5. Directory structureab_layout = Layout.newab_layout[:source, :main, :java] = 'src'ab_layout[:source, :main, :resources] = 'resources'define 'al', :layout => ab_layout doproject.version = 1.5compile.options.target = '1.5'compile.with LIBS package :jarend
  • 8. Step 6. Add custom task define 'al', :layout => ab_layout doproject.version = 1.5compile.options.target = '1.5'compile.with LIBS task :run => :compile do system 'java -cp target/classes org.apache.killer.Main' endend
  • 9. Step 7. Testdefine 'al', :layout => ab_layout doproject.version = 1.5compile.options.target = '1.5'compile.with LIBStest.with'commons- ollections:commons- collections:jar:3.2' test.using:testngend
  • 10. Step 8. Call java task :generate do p 'calling ant..'Java.org.apache.tools.ant.Main.main( ['-file', 'build.xml', 'generate', '-Dserver=localhost'] ) end
  • 12. Other stuffInteractive Shell (JavaRebelsupport)IDE project file generationCobertura, Emma, Jdepend