5 Aralık 2021 Pazar

wrapper Task - Mevcut Projeye Gradle Wrapper Ekler

Giriş
Açıklaması şöyle
By default the Gradle wrapper created by running gradle init or gradle wrapper will use the version of Gradle installed on your machine.

Örnek
Şöyle yaparız
gradle wrapper
--gradle-version seçeneği
Sürümü artırır. Genel kullanımı şöyle
./gradlew wrapper --gradle-version <version-number>
Sürümü artırmadan önce deprecate edilen şeyleri düzeltmek gerekir. Bunun için önce şöyle yaparız. Tüm hataları düzelttikten sonra sürümü artırmak daha iyi
gradle --warning-mode all
Örnek
Sürümü artırmak için şöyle yaparız
$ ./gradlew wrapper --gradle-version=7.1.1
...
BUILD SUCCESSFUL in 575ms
1 actionable task: 1 executed
Daha sonra sürümü görmek için gradle çalıştırılınca yeni sürümün indirildiği görülebilir. Şöyle yaparız
$ ./gradlew --version
Downloading https://services.gradle.org/distributions/gradle-7.1.1-bin.zip
........

------------------------------------------------------------
Gradle 7.1.1
------------------------------------------------------------

Build time:   2021-07-02 12:16:43 UTC
Revision:     774525a055494e0ece39f522ac7ad17498ce032c

Kotlin:       1.4.31
Groovy:       3.0.7
Ant:          Apache Ant(TM) version 1.10.9 compiled on September 27 2020
JVM:          11.0.10 (Ubuntu 11.0.10+9-Ubuntu-0ubuntu1.20.04)
OS:           Linux 4.19.128-microsoft-standard amd64
Örnek - Gradle 4.10'dan Gradle 5'e geçiş
IntelliJ içinden şöyle yaptım. Burada IntelliJ ayarlarında Gradle JDK 8 ile çalışıyordu.
$ gradlew wrapper --gradle-version=5.0
Daha sonra JDK 11'e geçmek için build.gradle dosyasında şöyle yaptım
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
- JAVA_HOME ve PATH ortam değişkenlerimi JDK 11' yönlendirdim. 
- IntelliJ içinde File/Project Structure penceresinden JDK 11 kullanılmasını sağladım
- IntelliJ içinde File/Settings/Build, Execution, Deployment/Gradle penceresinden JDK 11 kullanılmasını sağladım
- Wildfly kullandığım için Edit Configurations penceresinden Wildfly debug ayarlarını değiştirerek JDK 11  kullanılmasını sağladım

Problem 1
Java 11 ile JDK artık gelmiyor.  dependency'leri değiştirmek gerekti. Şöyle yaptım
dependency 'org.projectlombok:lombok:1.18.22'
compile  'jakarta.xml.bind:jakarta.xml.bind-api:2.3.2'
testImplementation  'com.sun.xml.bind:jaxb-ri:2.3.3'
Projex JAXB 2 kullanıyordu.

Örnek - Gradle 5'ten Gradle 6.3 ve JDK 13'e geçiş
Problem 1
Kullanılan bir tane plugin bayağı problem çıkarttı. Verdiği hata şöyleydi
Unable to find method
org.gradle.api.file.FileCollection org.gradle.api.publish.maven.internal.publication.MavenPublicationInternal.getPublishableFiles() 
Şu dizin altındaki dosyaları bile temizledim ancak faydası olmadı. 
%USERPROFILE%\.gradle\caches 
Yani bu hatayı çözemedim. Plugin'i kaldırmak zorunda kaldım.

Problem 2
Daha sonra dependencies blok altında provided olarak tanımlı bazı kütüphaneleri compile yaptım. 

Problem 3
Testlerde şu hatayı almaya başladım. Çözüm ise jacoco sürümünü 0.8.6 olarak yükseltmek oldu
java.lang.NoSuchFieldException: $jacocoAccess
Problem 4
Testlerde şu hatayı almaya başladım. Bu aslında mockito sürümünün eski olmasından kaynaklanıyordu
Illegal reflective access by org.mockito.internal.creation.cglib.ClassImposterizer (file:/C:/Users/user/.gradle/caches/modules-2/files-2.1/org.mockito/mockito-core/1.10.19/e8546f5bef4e061d8dd73895b4e8f40e3fe6effe/mockito-core-1.10.19.jar) to constructor javax.xml.transform.TransformerFactory()

Please consider reporting this to the maintainers of org.mockito.internal.creation.cglib.ClassImposterizer

Use --illegal-access=warn to enable warnings of further illegal reflective access operations

All illegal access operations will be denied in a future release

Kod
JDK 11 ve JDK 13 arasında çok fark olmadığı için Java kısmında sıkıntı çıkmadı

Örnek - Gradle 6.3'ten Gradle 6.7 ve JDK 17'ye geçiş









Hiç yorum yok:

Yorum Gönder

Gradle Daemon Nedir?

Giriş Açıklaması  şöyle . Gradle Daemon arka planda çalışır. Çünkü Gradle'ı ayağa kaldırmak ve ilklendirmek çok uzun sürüyor.  Gradle ru...