Delprojekt och konfigurationer
Definiera och konfigurera delprojekt och förstå hur de samverkar i ett bygge med flera projekt.
Delprojekt och konfigurationer är en gratis lektion i Groovy och Gradle: JVM-automatisering och byggsystemutveckling på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Groovy och Gradle: JVM-automatisering och byggsystemutveckling, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Groovy och Gradle: JVM-automatisering och byggsystemutveckling innehåller totalt 4 lektioner.
Välkommen till delprojekten!
I stora programvaruprojekt kan det bli rörigt att samla allt i en enda stor byggfil. Det är här delprojekt kommer till sin rätt!
Med delprojekt kan du dela upp ett stort projekt i mindre, hanterbara moduler. Se dem som miniprojekt som ingår i ditt huvudprojekt.
- Modularitet: Organisera koden logiskt.
- Återanvändbarhet: Dela gemensam logik mellan moduler.
- Snabbare byggen: Gradle kan optimera byggen genom att bara arbeta med ändrade delprojekt.
Deklarera delprojekt
För att tala om för Gradle vilka delprojekt du har använder du filen settings.gradle. Den här filen finns i rotprojektets katalog.
Du använder nyckelordet include, följt av sökvägen till delprojektets katalog. Varje delprojekt ligger vanligtvis i sin egen mapp.
/* settings.gradle */
rootProject.name = 'my-multi-project'
include 'app'
include 'library'Katalogstruktur för delprojekt
När delprojekten har deklarerats i settings.gradle ser projektstrukturen vanligtvis ut så här:
my-multi-project/(rotprojekt)settings.gradlebuild.gradle(rotprojektets byggfil)app/(delprojekt 1)build.gradle- ... (källkod, resurser)
library/(delprojekt 2)build.gradle- ... (källkod, resurser)
Varje delprojekt får sin egen build.gradle-fil.
Delprojektens byggfiler
Precis som rotprojektet har varje delprojekt sin egen build.gradle-fil. På så sätt kan du definiera specifika konfigurationer, beroenden och tasks för just den modulen.
Ditt app-delprojekt kan till exempel bygga en körbar applikation, medan ditt library-delprojekt kan skapa en återanvändbar JAR-fil.
/* library/build.gradle */
plugins {
id 'java'
}
group 'com.coddykit'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
testImplementation platform('org.junit:junit-bom:5.9.1')
testImplementation 'org.junit.jupiter:junit-jupiter'
}Definiera en task för ett delprojekt
Du kan definiera tasks i ett delprojekts build.gradle-fil. Dessa tasks gäller då specifikt för det delprojektet.
Låt oss lägga till en enkel task i vårt library-delprojekt som skriver ut ett meddelande.
/* library/build.gradle */
plugins {
id 'java'
}
group 'com.coddykit'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
task helloLibrary {
doLast {
println "Hello from the Library subproject!"
}
}Köra tasks för delprojekt
För att köra en task som tillhör ett specifikt delprojekt från rotkatalogen använder du ett kolon : för att skilja delprojektets namn från taskens namn.
För att till exempel köra tasken helloLibrary från vårt library-delprojekt:
public class Main {
public static void main(String[] args) {
System.out.println("To run the task: gradle :library:helloLibrary");
System.out.println("Output will be: Hello from the Library subproject!");
}
}Gemensam konfiguration: allprojects
Ibland vill du tillämpa samma konfiguration på alla projekt i ditt flerprojektsbygge (rotprojektet och alla dess delprojekt).
Det gör du med blocket allprojects { ... } i rotprojektets root build.gradle-fil.
/* build.gradle (root) */
allprojects {
group 'com.coddykit.common'
version '1.0.0'
repositories {
mavenCentral()
}
}Rikta in dig på specifika delprojekt
Även om allprojects passar bra för gemensamma inställningar behöver du ofta konfigurera enskilda delprojekt från rotens byggfil.
Du kan använda blocket project(':subprojectName') { ... } för att tillämpa konfiguration specifikt på ett delprojekt.
/* build.gradle (root) */
project(':app') {
apply plugin: 'application'
mainClassName = 'com.coddykit.app.MainApp'
}
project(':library') {
apply plugin: 'java-library'
}Dela egenskaper
Du kan också dela egenskaper eller variabler från rotprojektet med alla delprojekt. Det är användbart för exempelvis enhetliga versionsnummer eller byggflaggor.
Använd blocket ext (för "extra properties") i rotens build.gradle och kom åt det med rootProject.ext.propertyName i delprojekten.
/* build.gradle (root) */
ext {
groovyVersion = '3.0.9'
springBootVersion = '2.7.5'
}
allprojects {
// Access properties in subprojects
println "Groovy Version: ${rootProject.ext.groovyVersion}"
}Kontroll med flera svar
Vilka av följande påståenden om Gradles delprojekt och deras konfiguration är sanna?
Sammanfattning av delprojekt
Bra jobbat! Du har lärt dig grunderna i att konfigurera och ställa in Gradles delprojekt.
- Delprojekt hjälper dig att organisera stora byggen.
- De deklareras i
settings.gradlemed hjälp avinclude. - Varje delprojekt har sin egen
build.gradle. - Du kan konfigurera alla projekt med
allprojects { ... }eller specifika projekt medproject(':name') { ... }. - Tasks körs med syntaxen
:subproject:task.
Härnäst utforskar vi hur delprojekt kan vara beroende av varandra!
Lär dig Groovy med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Delprojekt och konfigurationer” gratis?
Ja – hela texten till ”Delprojekt och konfigurationer” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Groovy och Gradle: JVM-automatisering och byggsystemutveckling, kan Ni uppgradera till CoddyKit PRO. Kursen i Groovy och Gradle: JVM-automatisering och byggsystemutveckling innehåller totalt 4 lektioner.
Vad lär jag mig i ”Delprojekt och konfigurationer”?
Definiera och konfigurera delprojekt och förstå hur de samverkar i ett bygge med flera projekt. Ni övar på Groovy och Gradle: JVM-automatisering och byggsystemutveckling med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Groovy och Gradle: JVM-automatisering och byggsystemutveckling?
Du behöver inga förkunskaper. Utbildningen i Groovy och Gradle: JVM-automatisering och byggsystemutveckling på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Delprojekt och konfigurationer”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Groovy och Gradle: JVM-automatisering och byggsystemutveckling-lektionen?
Ja. Varje Groovy och Gradle: JVM-automatisering och byggsystemutveckling-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Monorepo-projektstruktur
- Delprojekt och konfigurationer
- Beroenden mellan projekt
- Kompositbyggen och byggkomposition