Gradle ile Proje Insası

  • Published on
    20-Jul-2015

  • View
    1.075

  • Download
    3

Embed Size (px)

Transcript

  • mer ZKANomer@ozkan.info

  • Hakkmda

    Yazlm Mhendisi OpsGenie Kurumsal Java Back-End Development & Operations

  • letiim

    omer@ozkan.info omerozkan.net @omerozkan_ linkedin.com/in/omerozkan github.com/omerozkan

  • na (Build) Sistemi Nedir?

    Derleme (compile) Paketleme (package) Test Bamllk Ynetimi (dependency management) Dokman retme Deployment Daha fazlas?

  • na Sistemleri

    Ant Maven Grape Make Rake SBT GRADLE

  • ANT

  • Ant

    Olduka esnek XML ile yaplandrma (build.xml) Yaplandrmas zor (Maven ve Gradle'a gre) Bamllk ynetimi ivy ile yaplr

  • MAVEN

  • Maven

    Ant ile kyaslandnda basit ve kolay XML ile yaplandrma (pom.xml) Bamllk ynetimi Defacto Ant kadar esnek deil

  • GRADLE

  • Gradle

    Ant-ivy zerine gelitirildi Olduka esnek (Ant) Basit ve kolay yaplandrma (Maven) XML yerine Groovy ile yaplandrma Maven ve Ant ile uyumlu Son zamanlarda olduka popler Android iin varsaylan ina sistemi Gncel versiyon: 2.3

  • Java Plugin

    Java projeleri iin derleme, paketleme, testetme, bamllk ynetimi gibi zellikleri salar.

    apply plugin: 'java'

    sourceCompatibility = 1.7name = 'a-project'version = '1.0.0-SNAPSHOT'group = 'net.omerozkan.gradle'

  • Bamllk Ynetimi

    Maven ve Ivy depolar uzak depo olaraktanmlanabilir.

  • ...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 baarsz olduunda Bir sonraki task koturulmaz BUILD FAILED

    Baarsz testleri gz ard etmek iin

    ...test { ignoreFailures = true}...

  • Maven Eklentisi

    gradle install

    Maven'a uygun pom.xml retir. retilen jar dosyasn Maven yerel deposuna

    (.m2/repository) ykler.

    apply plugin: 'maven'

  • uploadArchive

    Derlenen paketler istenilen Maven deposunadeploy edilebilir.

    apply plugin: 'maven' uploadArchives { repositories { mavenDeployer { repository(url: url) { authentication(userName: "username",password: "password") } } }}

  • Gradle Task

    Eklentilerin ve Gradle'n sunduu tasklardnda zel tasklar eklenebilir.

    task customTask(dependsOn: 'jar')

  • Gradle Task

    Tasklar iin type tanm yaplabilir

    task packageZip(type: Zip) { from "${buildDir}/zip" baseName = 'package-name'}

  • Ant tasks

    Gradle ile Ant task'lar koturulabilir.configurations { debian}

    dependencies { debian group: 'org.vafer', name: 'jdeb', version: '1.3'}

    task deb(dependsOn: ['generateControlFiles'])

  • Gradle Wrapper

    Sistemde Gradle kurulu olma zorunluunu kaldrr Sadece JRE veya JDK olmas yeterli Versiyondan kaynaklanan sorunlar bu ekilde

    gideriliyor Unix (Linux, OS X) sistemler iin sh dosyas, Windows

    iin bat dosyas bulunduruyor. Gradle'n ilgili ve tek bir jar dosyas srm takip

    sisteminde bulunuyor

  • Gradle Wrapper

    Wrapper' aktif etmek iin:

    task wrapper(type: Wrapper) { gradleVersion = 2.3}

    Satrlar ekledikten sonra:

    gradle wrapperkomutunu altrmak 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. Fakateklenti:

    Testlerin dmesini otomatik olarak gz ard edemiyorve ii (Job) UNSTABLE yerine FAILED statsne alyor. zm: Testlerin ignoreFailure zelliinin aktif hale

    getirilmesi gerekiyor. Testleri otomatik olarak raporlayamyor.

    zm: Testler iin retilen test raporlarn tanmlamak

  • Jenkins ve Gradle

  • SORULAR?

    omer@ozkan.info

    http://omerozkan.net

    http://www.opsgenie.com

    Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24Slide 25Slide 26Slide 27

Recommended

View more >