13 Eylül 2021 Pazartesi

Intellij Idea ve Gradle

Intellij Idea ve Gradle
Gradle, Türkçe Locale ile çalışmayabiliyor. Hata da jacoco ile ortaya çıkıyor. Hata şöyle
java.lang.IllegalArgumentException: No enum constant org.jacoco.agent.rt.internal_c13123e.core.runtime.AgentOptions.OutputMode.fıle
O yüzden Intellij'i İngilizce locale ile başlatmak gerekebiliyor. Şöyle yaparız
Help"->"Edit Custom VM Options" açılır ve en alta
-Duser.language=en
satırı eklenir. Gradle şöyle kullanılır
.\gradlew -Duser.language=en build

Proje Yapısı
Proje Yapısı yazısına taşıdım

IntelliJ Terminal
Terminal aslında bir Power Shell terminali. Terminali iki şekilde kullanabiliriz.

1. gradle komutunu yazar ve Ctrl + Enter ile IntelliJ tarafından çalıştırılmasını isteyebiliriz.

2. Power Shell tarafından çalıştırılmasını isteyebiliriz.  gradlew.bat dosyasını çalıştırmak için Power Shell 
.\gradlew ...
şeklinde kullanmamızı istiyor. Ben en çok şunu kullanıyorum
.\gradlew build -x test
Gradle şöyle kullanılır
.\gradlew -Duser.language=en build
build.gradle Dosyası
Kullanılacak plugin'ler ve dependencies bu dosyaya yazılır

allprojects Block
Örnek
Şöyle yaparız
allprojects {
  gradle.projectsEvaluated {
    tasks.withType(JavaCompile) {
      options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
    }
  }
}

buildScript Block
Build işlemi için gereken ayarları içerir. Açıklaması şöyle
The “buildscript” block only controls dependencies for the buildscript process itself, not for the application code, which the top-level “dependencies” block controls.
Örnek
Şöyle yaparız
buildscript {
  repositories {
    google()
    jcenter()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:3.1.1'
  }
}
Açıklaması şöyle
But what does that block do? Basically it defines dependencies which are required for the build itself. Or in other words: It defines dependencies which are required to build your Application (whatever your “Application” is (Android App, Gradle Plugin, Swift Desktop Application…)).

In our Android example we have to define the Android Gradle Plugin dependency which helps us to build an APK:
plugins Block
Açıklaması şöyle
The “new” plugins block is not really new. It was already introduced in Gradle 2.1.
But there are some “limitations”. By default the plugin block can only resolve plugins which are either:
- Core Plugins (provides by Gradle themself). These are e.g.: org.gradle.java, org.gradle.groovy, org.gradle.java-gradle-plugin and so on…
- Published to the Gradle Plugin Portal.
war plugin yazısına bakabilirsiniz
spring-boot-gradle-plugin yazısına bakabilirsiniz

Örnek
ear çıktısı için şöyle yaparız
plugins {
id 'ear' }
Örnek
SpringBoot için şöyle yaparız
plugins {
id 'org.springframework.boot' version '2.1.2.RELEASE' }
repositories Block
Örnek ver

dependencies Block
Dependency tipleri şunlar olabilir
compile
compileOnly
implementation
testImplementation
testRuntimeOnly

compileOnly
Örnek - lombok
Şöyle yaparız
configurations {
  compileOnly {
    extendsFrom annotationProcessor
  }
}

repositories {
  mavenCentral()
}

dependencies {
  implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
  implementation 'org.springframework.boot:spring-boot-starter-data-rest'
  implementation 'org.springframework.boot:spring-boot-starter-web'
  compileOnly 'org.projectlombok:lombok'
  runtimeOnly 'com.h2database:h2'
  annotationProcessor 'org.projectlombok:lombok'
  testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
Custom Task Block
Örnek
Şöyle yaparız
task hello {
    doLast {
        println 'Hello Baeldung!'
    }
}
Örnek - Zip
Şöyle yaparız. build->distributions altında bir foo.zip dosyası yaratır
// Task for building the zip file for upload
task buildZip(type: Zip) {
  // set the base name of the zip file
  from compileJava
  from processResources
  into('lib') {
    from configurations.runtimeClasspath
  }
}
build.dependsOn buildZip
Custom Gradle File Block
apply from ile kendi dosyamız da dahil edilebilir.
Örnek
Şöyle yaparız
apply from: "$rootDir/gradle/utils.gradle"
settings.gradle Dosyası
settings.gradle Dosyası yazısına taşıdım

gradle/wrapper/gradle-wrapper.properties Dosyası
Bu dosyada kullanılacak gradle sürümü belirtilir. Kullanılan gradle sürümü ".gradle" dizini altında görülebilir. Kullanılmayan sürüm silinebilir.

Tasks
Eklenen plugin'ler task tanımlarlar 

application
build
build setup
distribution
documentation
help
other
verification

Intellij Build And Run
Intellij "Build and Run Using" ve     "Run tests Using" işlemleri için normalde altta gradle kullanır.







Hiç yorum yok:

Yorum Gönder