Gradle Kasutamine IntelliJ-s¶
See juhend selgitab, kuidas kasutada Gradle'i Java projekti pakendamiseks IntelliJ IDEA keskkonnas
Uue Gradle Projekti Loomine IntelliJ-s¶
IntelliJ IDEA Avamine: Avage IntelliJ IDEA ja valige "Create New Project".
Gradle Projekti Valik: Valikuaknas valige "Gradle" vasakult ja veenduge, et "Java" on valitud paremalt. Vajutage "Next".
Projekti Seadistamine: Sisestage projekti nimi ja asukoht. Vajutage "Finish".
Projekti Struktuuri Seadistamine¶
IntelliJ loob automaatselt Gradle projekti struktuuri, sealhulgas:
src/main/java
Java koodi jaokssrc/main/resources
ressursside jaokssrc/test/java
testide jaoks
build.gradle
Faili Konfigureerimine¶
Leidke build.gradle fail projekti juurkaustas ja lisage järgmine sisu:
NB! Gradle'il on mitmeid erinevaid süntakseid peaaegu iga tegevuse jaoks. Kui leiate juhendist mõne alternatiivse lahenduse, on tõenäoline, et see saavutab sama tulemuse.
Mõnel juhul võivad need süntaksid siiski veidi erineda, seega tasub olla tähelepanelik, et kasutatav süntaks vastaks soovitud tulemusele. Gradle võib olla selles osas kohati segadusttekitav :D
// Mina ei tea täpselt mida see teeb ja teie ei pea ka teadma
// Kui tutorial ütleb, et vaja lisada siia midagi, siis lisa
plugins {
id 'java'
id 'java-library'
}
group 'ee.taltech' // Lihtsalt viisakas öelda, milline on teie rakenduse package prefix
version '1.0' // Samamoodi praegu pigem viisakus
// Siin on defineeritud kõik kohad, kust gradle otsib sinu rakenduse sõltuvusi (lisatud all dependencies plokis)
allprojects {
repositories {
mavenCentral() // Seda tahad sa ilmselt alati lisada, siin on kõike https://mvnrepository.com/repos/central
maven { url 'https://jitpack.io' } // Vajadusel saab lisada ka alternatiive
}
}
// Siia lisa kõik teegid, mida su rakendus kasutab
// (alati uuri igaks juhuks, kas eksisteerib uuemaid versioone)
dependencies {
// Näiteks kryoneti lisamine (mida ilmselt lisate oma serverisse):
implementation 'com.github.crykn:kryonet:2.22.8'
implementation 'com.esotericsoftware:kryo:5.4.0'
// Kui midagi on vaja testide jooksutamiseks, siis see on defineeritud nii
// Kuna test frameworki pole mujal vaja, siis on see siin
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}
// Kui sa tahad teste kirjutada, peab olema see lisatud koos junit dependencyga
test {
useJUnitPlatform()
}
// Siin on defineeritud, kuidas gradle peaks ehitama JAR faili, mida saaks jooksutada ka teistes arvutites
jar {
manifest {
attributes(
// Main class väärtus oleneb sinu rakendusest.
// Siia peab minema klass, mille jooksutamisel rakenduse käima pannakse
'Main-Class': 'ee.taltech.server.Main'
)
}
duplicatesStrategy = DuplicatesStrategy.EXCLUDE // Teeb nii, et jar faili sees ei oleks topelt asju topitud
from (
// Valib kõik sinu failid jari sisse pakkimiseks
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
)
}
Projekti Ehitamine ja Käivitamine IntelliJ-s¶
Gradle Tööriistakast: Avage paremal Gradle tööriistakast.
Projekti Ehitamine: Topeltklõpsake
build
ülesandel, et kompileerida oma projekt ja luua JAR-fail.Rakenduse Käivitamine: Topeltklõpsake
run
ülesandelapplication
grupis, et käivitada oma rakendus IntelliJ IDEA-st.
TROUBLESHOOTING¶
- Lisasin dependency, aga seda ei ole projektis?
Refreshi projekti (Gradle aknas noolte ring)
Kontrolli, et sul on lisatud õige repositroy, kust Gradle saaks importida teeke (allprojects -> dependencies osa build.gradle sees)
- Kuidas Gradle projekti alustada?
Vajuta File -> New -> Project. Language: Java, Build system: Gradle, Gradle DSL: Groovy
- IntelliJ ei tuvasta ära minu Gradle projekti
Proovi restarti. IntelliJ peaks näitama popupi Gradle projekti importimiseks
Proovi manuaalselt moodul lisada. File -> New -> Module from existing sources. Vali kaust, milles on sinu rakendus (see kaust kus on build.gradle ja muud Gradle failid)
Proovi IntelliJ cache kustutada. File -> Invalidate Caches. Proovi eelmiseid samme
Proovi projekt ära kustutada ja klooni see uuesti
Kui kõik eelnev ei aidanud, siis on võimalik, et projektis on midagi valesti seadistatud või läks mõni samm sassi. Gradle + Intellij töötab suht lollikindlalt, kuid kui midagi siin ei ole aidanud, siis kirjuta õppejõule