Függőségkezelés, build eszközök Flashcards

1
Q

Mire jók a build eszközök?

A

Arra szolgálnak, hogy elvégezzék a
* tesztelést
* telepítést
* összecsomagolást
* integrálást

Ezeket pedig automatikusan, hogy ne kelljen nekünk újra meg újra ezt elvégeznünk.
Nem csak buildelnek ezek az eszközök, lehet hozzájuk más feladatokat is rendelni.
Többféle eszköz is létezik például a Gradle, a Maven, vagy az Apache ant.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Mi a Gradle?

A

Egy open source build tool, ami a hatékonyságra és flexibilitásra helyezi a hangsúlyt.
Konfigurációját Kotlin vagy Groovy DSL nyelven lehet elvégezni.
Tud párhuzamosan futtatni és van cachelési lehetőség is benne.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Convention over configuration elv

A

Szoftverfejlesztési paradigma, a fejlesztőknek csak azokat az eseteket kell külön kezelniük, amik eltérnek egy meghatározott konvenciótól. Konvenció pl. hogy egy mappát mindig adott helyen keressük, vagy egy class neve ugyanaz legyen, mint az adatbázis tábla neve.
Ha új fejlesztő csatlakozik, és foglalkozott már Gradle-el akkor rögtön érteni fogja a konvenciókat.
Lehet az előre definiált konvenciókat bővíteni, megváltoztatni.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Gradle működésének fázisai

A

A Gradle működése 3 fázisból áll:
1. Inicializáció: A környezetet előkészíti a buildelési folyamathoz és megállapítja melyik projekteket fognak részt venni.
2. Konfiguráció: Előállítja a feladat gráfot a buildhez és megállapítja milyen sorrendben kell majd futtatni őket.
3. Végrehajtás: egyes taskoknak lehet függőségeket adni, így ha egy task lefut, akkor előtte lefuttatja a szükséges függőséget is.

Clean: kiüríti a build mappát. Akkor kellhet, ha valami beragad.

Az egyes függőségek épülhetnek egymásra. A függőségeket távoli repóból szedjük le, ettől hordozható lesz a build tool: ahol van gradle, lehet használni.
A függőségeket könnyen meg lehet találni. A függőségek újra felhasználhatóak, valamint rugalmasak, mert lehet új függőségeket is hozzá adni.
Gradle Wrapper segítségével nem kell minden gépre Gradle. (gradlew)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Build eszköz telepítés

A

Publikálás repoba, hogy mások is használhassák.
1. Feltöltjük remote repóba localból, vagy ha nekünk kell valami, akkor azt a central repoból tudjuk leszedni. Ezek általában buildelésnél elvégződnek.

  1. Build konfiguráció:
    a. gradle.properties - opcionális, startup optionoket tudunk beadni a gradle-nek
    b. settings.gradle – az összes submodulokat ennek segítségével írjuk le és meg tudjuk jelölni a gyökérmodult. Egy build.settings file per multimodul projekt.
    c. build.gradle – minden modulban kell, az adott build logikáját írja le. A függőségeket, pluginokat is itt deklaráljuk.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Mik alapján történik a projekt azonosítása?

A

Projekt azonosítása 3 koordináta alapján történik:
● groupId
● artifactId
● version

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Függőség felbontás

A

használjunk keretrendszereket, könyvtárakat. A Gradle letölti a dependenciákat és eltárolja őket a gépünkön.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Tranzitív dependencia

A

Függőségek láncolata: ahhoz, hogy valamit használhassunk, annak a függőségei is kellenek.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Dependency scopes

A
  • implementation: Az adott modul használhatja az adott dependency-t
  • api: ha egy submodulban apiként írunk le egy függőséget (java-library plugin használata szükséges) akkor tranzitívan a szülő is tudja használni a dependency-t anélkül, hogy ezt a szülőnek külön deklarálni kellene
  • testImplementation: Csak teszteléshez szükséges dependency-k
  • compileOnly: futásidőben nem fog rendelkezésre állni csak fordításnál
  • runtimeOnly: csak futásidőben fog rendelkezésre állni

A verziós konfliktusok miatt alapértelmezetten a legújabbat használja a Gradle, de ezt át tudjuk konfigurálni. 

How well did you know this?
1
Not at all
2
3
4
5
Perfectly