SlideShare a Scribd company logo
Ömer ÖZKAN
omer@ozkan.info
Hakkımda
● Yazılım Mühendisi
● OpsGenie
● Kurumsal Java
● Back-End Development & Operations
İletişim
● omer@ozkan.info
● omerozkan.net
● @omerozkan_
● linkedin.com/in/omerozkan
● github.com/omerozkan
İnşa (Build) Sistemi Nedir?
● Derleme (compile)
● Paketleme (package)
● Test
● Bağımlılık Yönetimi (dependency management)
● Doküman üretme
● Deployment
● Daha fazlası?
İnşa Sistemleri
● Ant
● Maven
● Grape
● Make
● Rake
● SBT
● GRADLE
ANT
Ant
● Oldukça esnek
● XML ile yapılandırma (build.xml)
● Yapılandırması zor (Maven ve Gradle'a göre)
● Bağımlılık yönetimi ivy ile yapılır
MAVEN
Maven
● Ant ile kıyaslandığında basit ve kolay
● XML ile yapılandırma (pom.xml)
● Bağımlılık yönetimi
● Defacto
● Ant kadar esnek değil
GRADLE
Gradle
● Ant-ivy üzerine geliştirildi
● Oldukça esnek (Ant)
● Basit ve kolay yapılandırma (Maven)
● XML yerine Groovy ile yapılandırma
● Maven ve Ant ile uyumlu
● Son zamanlarda oldukça popüler
● Android için varsayılan inşa sistemi
● Güncel versiyon: 2.3
Java Plugin
● Java projeleri için derleme, paketleme, test
etme, bağımlılık yönetimi gibi özellikleri sağlar.
apply plugin: 'java'
sourceCompatibility = 1.7
name = 'a-project'
version = '1.0.0-SNAPSHOT'
group = 'net.omerozkan.gradle'
Bağımlılık Yönetimi
● Maven ve Ivy depoları uzak depo olarak
tanımlanabilir.
...
repositories {
mavenCentral()
jcenter()
mavenLocal()
maven {
url "http://repository.sifirbir.org"
}
ivy {
url "file:///home/omerozkan/ivy-depo"
}
}
dependencies {
compile 'org.apache.commons:commons-lang3:3.3.2'
compile 'org.codehaus.jackson:jackson-lgpl:0.9.5'
runtime 'org.apache.tomcat:tomcat:8.0.21'
testCompile group: 'junit', name: 'junit', version:
'4.11'
testRuntime 'org.dbunit:dbunit:+'
}
Task
● clean
● compileJava
● compileTestJava
● test
● check
● jar
● javadoc
● build
● build -x test
Test
● Testlerden biri başarısız olduğunda
– Bir sonraki task koşturulmaz
– BUILD FAILED
● Başarısız testleri göz ardı etmek için
...
test {
ignoreFailures = true
}
...
Maven Eklentisi
gradle install
● Maven'a uygun pom.xml üretir.
● Üretilen jar dosyasını Maven yerel deposuna
(.m2/repository) yükler.
apply plugin: 'maven'
uploadArchive
● Derlenen paketler istenilen Maven deposuna
deploy edilebilir.
apply plugin: 'maven'
uploadArchives {
repositories {
mavenDeployer {
repository(url: url) {
authentication(userName: "username",
password: "password")
}
}
}
}
Gradle Task
● Eklentilerin ve Gradle'ın sunduğu tasklar
dışında özel tasklar eklenebilir.
task customTask(dependsOn: 'jar') << {
println "CUSTOM TASK is starting now!"
//you can add any code you want
}
customTask.doFirst {
println "Do First!"
}
customTask.doLast {
println "Du hast!"
}
Gradle Task
● Tasklar için type tanımı yapılabilir
task packageZip(type: Zip) {
from "${buildDir}/zip"
baseName = 'package-name'
}
Ant tasks
● Gradle ile Ant task'ları koşturulabilir.
configurations {
debian
}
dependencies {
debian group: 'org.vafer', name: 'jdeb', version: '1.3'
}
task deb(dependsOn: ['generateControlFiles']) << {
ant {
taskdef(name: 'deb', classname: 'org.vafer.jdeb.ant.DebAntTask',
classpath: configurations.debian.asPath)
}
ant.deb(destfile: "${project.buildDir}/distributions/project_$
{debVersion}_all.deb", control: "controlDir") {
ant.data(src: dataTarget, type: 'directory', dst: '/')
}
}
Gradle Wrapper
● Sistemde Gradle kurulu olma zorunluğunu kaldırır
● Sadece JRE veya JDK olması yeterli
● Versiyondan kaynaklanan sorunlar bu şekilde
gideriliyor
● Unix (Linux, OS X) sistemler için sh dosyası, Windows
için bat dosyası bulunduruyor.
● Gradle'ın ilgili ve tek bir jar dosyası sürüm takip
sisteminde bulunuyor
Gradle Wrapper
● Wrapper'ı aktif etmek için:
task wrapper(type: Wrapper) {
gradleVersion = 2.3
}
● Satırları ekledikten sonra:
gradle wrapper
komutunu çalıştırmak yeterlidir.
Gradle Wrapper
● Daha sonra üretilen scriptleri kullanarak gradle'ı
kullanabilirsiniz.
./gradlew clean build (Linux ve OS X)
gradlew.bat clean build (Windows sistemler)
Jenkins ve Gradle
Jenkins'in gradle eklentisini kullanabilirsiniz. Fakat
eklenti:
● Testlerin düşmesini otomatik olarak göz ardı edemiyor
ve işi (Job) UNSTABLE yerine FAILED statüsüne alıyor.
– Çözüm: Testlerin ignoreFailure özelliğinin aktif hale
getirilmesi gerekiyor.
● Testleri otomatik olarak raporlayamıyor.
– Çözüm: Testler için üretilen test raporlarını tanımlamak
Jenkins ve Gradle
SORULAR?
omer@ozkan.info
http://omerozkan.net
http://www.opsgenie.com

More Related Content

What's hot

Jstanbul, Node.js based Socket.IO, Express and HTML5 based Bingo Game
Jstanbul, Node.js based Socket.IO, Express and HTML5 based Bingo GameJstanbul, Node.js based Socket.IO, Express and HTML5 based Bingo Game
Jstanbul, Node.js based Socket.IO, Express and HTML5 based Bingo Game
Emrah Ayanoglu
 
Jenkins
JenkinsJenkins
Jenkins
Osman Yuksel
 
Node js part 1 shared
Node js part 1 sharedNode js part 1 shared
Node js part 1 shared
Engin Yelgen
 
Test Driven Development
Test Driven Development Test Driven Development
Test Driven Development
Nezir Yürekli
 
Node js part 2 shared
Node js part 2 sharedNode js part 2 shared
Node js part 2 shared
Engin Yelgen
 
ASP.NET MVC'den ASP.NET Core'a Geçiş
ASP.NET MVC'den ASP.NET Core'a GeçişASP.NET MVC'den ASP.NET Core'a Geçiş
ASP.NET MVC'den ASP.NET Core'a Geçiş
Sinan Bozkuş
 
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş SüreciASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
Sinan Bozkuş
 
WordPress ve Multisite Wordpress İle Büyük Ölçekli Çözümler
WordPress ve Multisite Wordpress İle Büyük Ölçekli ÇözümlerWordPress ve Multisite Wordpress İle Büyük Ölçekli Çözümler
WordPress ve Multisite Wordpress İle Büyük Ölçekli Çözümler
Salih Özdemir
 
React Bootcamp Day 2 - Yunus Demirpolat
React Bootcamp Day 2 - Yunus DemirpolatReact Bootcamp Day 2 - Yunus Demirpolat
React Bootcamp Day 2 - Yunus Demirpolat
kloia
 
Selenium ile Web testi.
Selenium ile Web testi.Selenium ile Web testi.
Selenium ile Web testi.
Mahmut Gündoğdu
 
Radore Workshop: Wordpress Nereye Koşuyor?
Radore Workshop: Wordpress Nereye Koşuyor? Radore Workshop: Wordpress Nereye Koşuyor?
Radore Workshop: Wordpress Nereye Koşuyor?
Radore Veri Merkezi Hizmetleri A.Ş.
 
Modern Frontend
Modern FrontendModern Frontend
Modern Frontend
Cihad Horuzoğlu
 
İdeal WordPress Geliştirme Ortamı
İdeal WordPress Geliştirme Ortamıİdeal WordPress Geliştirme Ortamı
İdeal WordPress Geliştirme Ortamı
Mustafa UYSAL
 
Selenium sunum
Selenium sunumSelenium sunum
Selenium sunum
Ali Mert AVCI
 
Selenium
SeleniumSelenium
Selenium
Osman Yuksel
 
Java 9 Project Jigsaw
Java 9 Project JigsawJava 9 Project Jigsaw
Java 9 Project Jigsaw
Rahman USTA
 
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari OluşturmaSymfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
Hüseyin Mert
 
Ajax
Ajax Ajax
Node.js'e Hızlı Bir Bakış
Node.js'e Hızlı Bir BakışNode.js'e Hızlı Bir Bakış
Node.js'e Hızlı Bir Bakış
Mustafa Dağdelen
 
Java EE Nedir? (Baku JUG)
Java EE Nedir? (Baku JUG)Java EE Nedir? (Baku JUG)
Java EE Nedir? (Baku JUG)
Rahman USTA
 

What's hot (20)

Jstanbul, Node.js based Socket.IO, Express and HTML5 based Bingo Game
Jstanbul, Node.js based Socket.IO, Express and HTML5 based Bingo GameJstanbul, Node.js based Socket.IO, Express and HTML5 based Bingo Game
Jstanbul, Node.js based Socket.IO, Express and HTML5 based Bingo Game
 
Jenkins
JenkinsJenkins
Jenkins
 
Node js part 1 shared
Node js part 1 sharedNode js part 1 shared
Node js part 1 shared
 
Test Driven Development
Test Driven Development Test Driven Development
Test Driven Development
 
Node js part 2 shared
Node js part 2 sharedNode js part 2 shared
Node js part 2 shared
 
ASP.NET MVC'den ASP.NET Core'a Geçiş
ASP.NET MVC'den ASP.NET Core'a GeçişASP.NET MVC'den ASP.NET Core'a Geçiş
ASP.NET MVC'den ASP.NET Core'a Geçiş
 
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş SüreciASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
 
WordPress ve Multisite Wordpress İle Büyük Ölçekli Çözümler
WordPress ve Multisite Wordpress İle Büyük Ölçekli ÇözümlerWordPress ve Multisite Wordpress İle Büyük Ölçekli Çözümler
WordPress ve Multisite Wordpress İle Büyük Ölçekli Çözümler
 
React Bootcamp Day 2 - Yunus Demirpolat
React Bootcamp Day 2 - Yunus DemirpolatReact Bootcamp Day 2 - Yunus Demirpolat
React Bootcamp Day 2 - Yunus Demirpolat
 
Selenium ile Web testi.
Selenium ile Web testi.Selenium ile Web testi.
Selenium ile Web testi.
 
Radore Workshop: Wordpress Nereye Koşuyor?
Radore Workshop: Wordpress Nereye Koşuyor? Radore Workshop: Wordpress Nereye Koşuyor?
Radore Workshop: Wordpress Nereye Koşuyor?
 
Modern Frontend
Modern FrontendModern Frontend
Modern Frontend
 
İdeal WordPress Geliştirme Ortamı
İdeal WordPress Geliştirme Ortamıİdeal WordPress Geliştirme Ortamı
İdeal WordPress Geliştirme Ortamı
 
Selenium sunum
Selenium sunumSelenium sunum
Selenium sunum
 
Selenium
SeleniumSelenium
Selenium
 
Java 9 Project Jigsaw
Java 9 Project JigsawJava 9 Project Jigsaw
Java 9 Project Jigsaw
 
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari OluşturmaSymfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
Symfony2 ve Doctrine ile PostgreSQL'i Kullanarak Performanslı Mimari Oluşturma
 
Ajax
Ajax Ajax
Ajax
 
Node.js'e Hızlı Bir Bakış
Node.js'e Hızlı Bir BakışNode.js'e Hızlı Bir Bakış
Node.js'e Hızlı Bir Bakış
 
Java EE Nedir? (Baku JUG)
Java EE Nedir? (Baku JUG)Java EE Nedir? (Baku JUG)
Java EE Nedir? (Baku JUG)
 

Similar to Gradle ile Proje Insası

PostgreSQL Hem Güçlü Hem Güzel!
PostgreSQL Hem Güçlü Hem Güzel!PostgreSQL Hem Güçlü Hem Güzel!
PostgreSQL Hem Güçlü Hem Güzel!
Gulcin Yildirim Jelinek
 
MongoDB ve C# Driver'ı
MongoDB ve C# Driver'ıMongoDB ve C# Driver'ı
MongoDB ve C# Driver'ı
Serdar Buyuktemiz
 
PostgreSQL DBA Neler Yapar?
PostgreSQL DBA Neler Yapar?PostgreSQL DBA Neler Yapar?
PostgreSQL DBA Neler Yapar?
Gulcin Yildirim Jelinek
 
Grunt.js, Bower ve Yeoman Gibi Araçlar ile Proje Otomatizasyonu
Grunt.js, Bower ve Yeoman Gibi Araçlar ile Proje OtomatizasyonuGrunt.js, Bower ve Yeoman Gibi Araçlar ile Proje Otomatizasyonu
Grunt.js, Bower ve Yeoman Gibi Araçlar ile Proje Otomatizasyonu
Omer Buyukoglu
 
React native 101
React native 101React native 101
React native 101
Tayfun YÜĞRÜK
 
Abis Teknoloji şirket içi Docker sunumu
Abis Teknoloji şirket içi Docker sunumuAbis Teknoloji şirket içi Docker sunumu
Abis Teknoloji şirket içi Docker sunumu
Mahmut Gündoğdu
 
Sanallaştırmada Yeni Akım - Docker
Sanallaştırmada Yeni Akım - DockerSanallaştırmada Yeni Akım - Docker
Sanallaştırmada Yeni Akım - Docker
Oguz Yarimtepe
 
Sanallastirmada yeni akim: Docker
Sanallastirmada yeni akim: DockerSanallastirmada yeni akim: Docker
Sanallastirmada yeni akim: Docker
Oguz Yarimtepe
 
Oracle Golden Gate
Oracle Golden GateOracle Golden Gate
Oracle Golden GateAnar Godjaev
 
JUnit ve Docker yardimiyla kolay entegrasyon testleri
JUnit ve Docker yardimiyla kolay entegrasyon testleriJUnit ve Docker yardimiyla kolay entegrasyon testleri
JUnit ve Docker yardimiyla kolay entegrasyon testleri
İlkin Balkanay
 
Kali ile Linux'e Giriş | IntelRAD
Kali ile Linux'e Giriş | IntelRADKali ile Linux'e Giriş | IntelRAD
Kali ile Linux'e Giriş | IntelRAD
Mehmet Ince
 
NodeJS Nedir
NodeJS NedirNodeJS Nedir
NodeJS Nedir
Dilaver Demirel
 
Django Introduction
Django IntroductionDjango Introduction
Django IntroductionFatih Erikli
 
JVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDEJVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDE
Halil İbrahim ÇELENLİ
 
Sunucularımızı Gözleyelim
Sunucularımızı GözleyelimSunucularımızı Gözleyelim
Sunucularımızı Gözleyelim
Oguz Yarimtepe
 
Eclipse PDT
Eclipse PDTEclipse PDT
Eclipse PDT
Muharrem Tac
 
Apache Spark : Genel Bir Bakış
Apache Spark : Genel Bir BakışApache Spark : Genel Bir Bakış
Apache Spark : Genel Bir Bakış
Burak KÖSE
 
Spring Data MongoDB Webiner
Spring Data MongoDB WebinerSpring Data MongoDB Webiner
Spring Data MongoDB Webiner
Hakan Özler
 
Go Programlama Dili - Seminer
Go Programlama Dili - SeminerGo Programlama Dili - Seminer
Go Programlama Dili - Seminer
Cihan Özhan
 

Similar to Gradle ile Proje Insası (20)

PostgreSQL Hem Güçlü Hem Güzel!
PostgreSQL Hem Güçlü Hem Güzel!PostgreSQL Hem Güçlü Hem Güzel!
PostgreSQL Hem Güçlü Hem Güzel!
 
MongoDB ve C# Driver'ı
MongoDB ve C# Driver'ıMongoDB ve C# Driver'ı
MongoDB ve C# Driver'ı
 
PostgreSQL DBA Neler Yapar?
PostgreSQL DBA Neler Yapar?PostgreSQL DBA Neler Yapar?
PostgreSQL DBA Neler Yapar?
 
Grunt.js, Bower ve Yeoman Gibi Araçlar ile Proje Otomatizasyonu
Grunt.js, Bower ve Yeoman Gibi Araçlar ile Proje OtomatizasyonuGrunt.js, Bower ve Yeoman Gibi Araçlar ile Proje Otomatizasyonu
Grunt.js, Bower ve Yeoman Gibi Araçlar ile Proje Otomatizasyonu
 
React native 101
React native 101React native 101
React native 101
 
Abis Teknoloji şirket içi Docker sunumu
Abis Teknoloji şirket içi Docker sunumuAbis Teknoloji şirket içi Docker sunumu
Abis Teknoloji şirket içi Docker sunumu
 
Sanallaştırmada Yeni Akım - Docker
Sanallaştırmada Yeni Akım - DockerSanallaştırmada Yeni Akım - Docker
Sanallaştırmada Yeni Akım - Docker
 
Sanallastirmada yeni akim: Docker
Sanallastirmada yeni akim: DockerSanallastirmada yeni akim: Docker
Sanallastirmada yeni akim: Docker
 
Java 1
Java 1Java 1
Java 1
 
Oracle Golden Gate
Oracle Golden GateOracle Golden Gate
Oracle Golden Gate
 
JUnit ve Docker yardimiyla kolay entegrasyon testleri
JUnit ve Docker yardimiyla kolay entegrasyon testleriJUnit ve Docker yardimiyla kolay entegrasyon testleri
JUnit ve Docker yardimiyla kolay entegrasyon testleri
 
Kali ile Linux'e Giriş | IntelRAD
Kali ile Linux'e Giriş | IntelRADKali ile Linux'e Giriş | IntelRAD
Kali ile Linux'e Giriş | IntelRAD
 
NodeJS Nedir
NodeJS NedirNodeJS Nedir
NodeJS Nedir
 
Django Introduction
Django IntroductionDjango Introduction
Django Introduction
 
JVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDEJVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDE
 
Sunucularımızı Gözleyelim
Sunucularımızı GözleyelimSunucularımızı Gözleyelim
Sunucularımızı Gözleyelim
 
Eclipse PDT
Eclipse PDTEclipse PDT
Eclipse PDT
 
Apache Spark : Genel Bir Bakış
Apache Spark : Genel Bir BakışApache Spark : Genel Bir Bakış
Apache Spark : Genel Bir Bakış
 
Spring Data MongoDB Webiner
Spring Data MongoDB WebinerSpring Data MongoDB Webiner
Spring Data MongoDB Webiner
 
Go Programlama Dili - Seminer
Go Programlama Dili - SeminerGo Programlama Dili - Seminer
Go Programlama Dili - Seminer
 

Gradle ile Proje Insası

  • 2. Hakkımda ● Yazılım Mühendisi ● OpsGenie ● Kurumsal Java ● Back-End Development & Operations
  • 3. İletişim ● omer@ozkan.info ● omerozkan.net ● @omerozkan_ ● linkedin.com/in/omerozkan ● github.com/omerozkan
  • 4. İnşa (Build) Sistemi Nedir? ● Derleme (compile) ● Paketleme (package) ● Test ● Bağımlılık Yönetimi (dependency management) ● Doküman üretme ● Deployment ● Daha fazlası?
  • 5. İnşa Sistemleri ● Ant ● Maven ● Grape ● Make ● Rake ● SBT ● GRADLE
  • 6. ANT
  • 7. Ant ● Oldukça esnek ● XML ile yapılandırma (build.xml) ● Yapılandırması zor (Maven ve Gradle'a göre) ● Bağımlılık yönetimi ivy ile yapılır
  • 9. Maven ● Ant ile kıyaslandığında basit ve kolay ● XML ile yapılandırma (pom.xml) ● Bağımlılık yönetimi ● Defacto ● Ant kadar esnek değil
  • 11. Gradle ● Ant-ivy üzerine geliştirildi ● Oldukça esnek (Ant) ● Basit ve kolay yapılandırma (Maven) ● XML yerine Groovy ile yapılandırma ● Maven ve Ant ile uyumlu ● Son zamanlarda oldukça popüler ● Android için varsayılan inşa sistemi ● Güncel versiyon: 2.3
  • 12. Java Plugin ● Java projeleri için derleme, paketleme, test etme, bağımlılık yönetimi gibi özellikleri sağlar. apply plugin: 'java' sourceCompatibility = 1.7 name = 'a-project' version = '1.0.0-SNAPSHOT' group = 'net.omerozkan.gradle'
  • 13. Bağımlılık Yönetimi ● Maven ve Ivy depoları uzak depo olarak tanımlanabilir.
  • 14. ... repositories { mavenCentral() jcenter() mavenLocal() maven { url "http://repository.sifirbir.org" } ivy { url "file:///home/omerozkan/ivy-depo" } } dependencies { compile 'org.apache.commons:commons-lang3:3.3.2' compile 'org.codehaus.jackson:jackson-lgpl:0.9.5' runtime 'org.apache.tomcat:tomcat:8.0.21' testCompile group: 'junit', name: 'junit', version: '4.11' testRuntime 'org.dbunit:dbunit:+' }
  • 15. Task ● clean ● compileJava ● compileTestJava ● test ● check ● jar ● javadoc ● build ● build -x test
  • 16. Test ● Testlerden biri başarısız olduğunda – Bir sonraki task koşturulmaz – BUILD FAILED ● Başarısız testleri göz ardı etmek için ... test { ignoreFailures = true } ...
  • 17. Maven Eklentisi gradle install ● Maven'a uygun pom.xml üretir. ● Üretilen jar dosyasını Maven yerel deposuna (.m2/repository) yükler. apply plugin: 'maven'
  • 18. uploadArchive ● Derlenen paketler istenilen Maven deposuna deploy edilebilir. apply plugin: 'maven' uploadArchives { repositories { mavenDeployer { repository(url: url) { authentication(userName: "username", password: "password") } } } }
  • 19. Gradle Task ● Eklentilerin ve Gradle'ın sunduğu tasklar dışında özel tasklar eklenebilir. task customTask(dependsOn: 'jar') << { println "CUSTOM TASK is starting now!" //you can add any code you want } customTask.doFirst { println "Do First!" } customTask.doLast { println "Du hast!" }
  • 20. Gradle Task ● Tasklar için type tanımı yapılabilir task packageZip(type: Zip) { from "${buildDir}/zip" baseName = 'package-name' }
  • 21. Ant tasks ● Gradle ile Ant task'ları koşturulabilir. configurations { debian } dependencies { debian group: 'org.vafer', name: 'jdeb', version: '1.3' } task deb(dependsOn: ['generateControlFiles']) << { ant { taskdef(name: 'deb', classname: 'org.vafer.jdeb.ant.DebAntTask', classpath: configurations.debian.asPath) } ant.deb(destfile: "${project.buildDir}/distributions/project_$ {debVersion}_all.deb", control: "controlDir") { ant.data(src: dataTarget, type: 'directory', dst: '/') } }
  • 22. Gradle Wrapper ● Sistemde Gradle kurulu olma zorunluğunu kaldırır ● Sadece JRE veya JDK olması yeterli ● Versiyondan kaynaklanan sorunlar bu şekilde gideriliyor ● Unix (Linux, OS X) sistemler için sh dosyası, Windows için bat dosyası bulunduruyor. ● Gradle'ın ilgili ve tek bir jar dosyası sürüm takip sisteminde bulunuyor
  • 23. Gradle Wrapper ● Wrapper'ı aktif etmek için: task wrapper(type: Wrapper) { gradleVersion = 2.3 } ● Satırları ekledikten sonra: gradle wrapper komutunu çalıştırmak yeterlidir.
  • 24. Gradle Wrapper ● Daha sonra üretilen scriptleri kullanarak gradle'ı kullanabilirsiniz. ./gradlew clean build (Linux ve OS X) gradlew.bat clean build (Windows sistemler)
  • 25. Jenkins ve Gradle Jenkins'in gradle eklentisini kullanabilirsiniz. Fakat eklenti: ● Testlerin düşmesini otomatik olarak göz ardı edemiyor ve işi (Job) UNSTABLE yerine FAILED statüsüne alıyor. – Çözüm: Testlerin ignoreFailure özelliğinin aktif hale getirilmesi gerekiyor. ● Testleri otomatik olarak raporlayamıyor. – Çözüm: Testler için üretilen test raporlarını tanımlamak