Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • akselsa/course-material
  • it1901/course-material
2 results
Show changes
Showing
with 12 additions and 39 deletions
howto/images/linux01_download.png

110 KiB

howto/images/linux02_extract.png

26.7 KiB

howto/images/linux03_check_false.png

52.4 KiB

howto/images/linux03_list.png

39.9 KiB

howto/images/linux04_move.png

50.6 KiB

howto/images/linux05_env01.png

26.8 KiB

howto/images/linux06_env02.png

47.5 KiB

howto/images/linux07_check_true.png

48 KiB

howto/images/mac_01_check_false.png

49.8 KiB

howto/images/mac_02_check_false.png

26.9 KiB

howto/images/mac_03_extract.png

57.5 KiB

howto/images/mac_04_move.png

28.7 KiB

howto/images/mac_05_env01.png

24.1 KiB

howto/images/mac_06_env02.png

25 KiB

howto/images/mac_07_apply_env.png

25.8 KiB

howto/images/mac_08_env03.png

38.1 KiB

howto/images/mac_09_check_true.png

32.9 KiB

......@@ -2,4 +2,4 @@
.gradle
# Ignore Gradle build output directory
build
build/
# Materiale laget med asciidoctor
Mappa **asciidoctor** inneholder tekstlig materiale, mens **revealjs**-mappa
inneholder lysarkene.
## Hvordan bygge
Bygging av både dokumentasjon og lysark skjer med gradle.
Bruk `gradle asciidoctor` for å generere HTML for det tekstlige og `gradle asciidoctorRevealJs` for lysarkene.
Konvertering kan også gjøres med den generelle `gradle build`.
== Multi-eksempel
Dette eksemplet viser hvordan rigger et multi-prosjekt med gradle,
med del-prosjekter for
- domenelogikk (core)
- brukergrensesnitt med JavaFX og FXML (fx)
- React-basert web-klient (react)
- web-server med JAX-RS og Jersey (jersey)
=== Bygging med Gradle
https://docs.gradle.org/current/userguide/userguide.html[Gradle] er et såkalt byggesystem, som automatiserer oppgaver knyttet til utvikling og kvalitetssikring av programvare, f.eks.
kompilering, kjørings av enhetstester og integrasjonstester, konvertering av dokumentasjon til HTML, pakking som kjørbart program, osv.
Det finnes teknisk sett ikke grenser for hva et byggesystem kan gjøre, generelt handler det om å automatisere bort alt praktisk fikkel,
som ellers hindrer en å jobbe effektivt.
Det finnes flere byggesystem, de viktigste i Java-verdenen er https://maven.apache.org[Maven] og Gradle, mens Javascript-verdenen har sine, bl.a. https://docs.npmjs.com[npm].
I dette prosjektet har vi valgt å bruke Gradle, fordi det er enklere å skrive og lese oppsettet og trigge kjøring, mer fleksiblet og
det vi ønsker å automatisere i akkurat dette prosjektet er innafor det Gradle håndterer godt. For andre Java-prosjekter https://phauer.com/2018/moving-back-from-gradle-to-maven/[kan Maven være et bedre alternativ].
Siden ett av prosjektet bruker Javascript og npm, så
bruker vi et eget Gradle-tillegg som bygger bro til npm.
Gradle er bygget rundt tre sentrale elementer:
- oppgaver (tasks) - det som automatiseres, f.eks. kompilering, kjøring av tester, osv.
- prosjekter - enhetene som oppgaver utføres innenfor
- tillegg (plugins) - angir hvilke oppgaver som hører til et visst type prosjekt.
Oppsettet for bygging består bl.a. i å angi hvilke (del)-prosjekter som inngår i hovedprosjektet,
hvilke avhengigheter det er til eksterne moduler og mellom prosjektene, hvilke tillegg som bør aktiveres for disse prosjektene
(basert på hva slags type prosjekt det er) og hvordan hver type oppgave skal konfigureres.
NOTE: Det litt spesielle med Gradle er at filene for å sette opp et Gradle-bygg egentlig er https://docs.gradle.org/current/userguide/groovy_build_script_primer.html[kode skrevet i det Java-lignende språket Groovy].
Koden brukes primært til konfigurasjon, altså bygge opp beskrivelsen av oppgavene, prosjektene og tilleggene og. API-et er utformet slik at koden skal se deklarativ ut.
En kan flette inn vanlig kode også, hvis en skjønner litt om hvordan API-et virker. Dette gir enorm fleksibilitet, men kan også gjøre filene vanskelige å forstå.
De to viktigste filene for å sette opp et Gradle-bygg er *settings.gradle* og *build.gradle*.