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.ClassImposterizerUse --illegal-access=warn to enable warnings of further illegal reflective access operationsAll 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