• Keine Ergebnisse gefunden

Build Management Tool?

N/A
N/A
Protected

Academic year: 2022

Aktie "Build Management Tool?"

Copied!
18
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)
(2)

Build Management Tool?

Funktionen

Dependency Management

Kompiliert den Sourcecode in Binaries

Führt automatisierte Tests aus

Installiert Software oder Lädt sie in Repositories

Erstellt eine Dokumentation

Erstellt Software Pakete (Releases/Distributionen)

Vertreter

Make

(3)

Gradle Project Structure

Im wesentlichen von Maven entliehen

src: source files

main: java Klassen mit resources

test: test java Klassen mit resources

build: compilierte files

NICHT in die Versionskontrolle

Wird automatisch erstellt wenn benötigt

Module home

(4)

Java Modules vs Packages

Package :

Dient der Einordnung von Java Klassen in Namespaces um Rechte/Sichtbarkeit zu organisieren

Module :

Einheit die als eigenständiges JAR zur Verfuegung stehen soll

Einteilung in use cases

Welche teile meiner software/library moechte ich einzeln bereitstellen

Bsp.: API ↔ konkrete Implementierungen

Der interessante Organisationsmechanismus fuer das Build-System

(5)

Begrife:

Repository (Versionskontrolle)

Zentraler Server der eure Versionskontrolle bereitstellt

Repository / Artifactory

Zentraler Server der libraries (jars) öffentlich bereitstellt

Artifact (debloy, publish)

Einheit/Archiv/Library/Jar in einem Repository

Distribution (debloy, publish)

Paket das an User ausgeliefert wird

Starter, Manual, Libs, Installer, Lizenzen

(6)

Gradle

Build System / Build Management Tool

DSL (Domain-specific language) die auf Groovy Basiert

Man schreibt scripte und keine Config files

(Maven→xml)

(7)

Gradle

build.gradle (Module Root)

Sind die eigentlichen build scripte

Beinhalten tasks und deren configuration

Erben tasks und configs von obermodulen

Hier kann gradle ausgefuehrt werde

setting.gradle (Project Root)

Definiert module die von gradle gebaut werden sollen

Einige globale optionen

(8)

Minimales Projekt

group 'de.unijena.bioinf.teaching.20[year].grp[number]' version '1.0-SNAPSHOT'

settings.gradle (Optional: sonst wird Verzeichnisname verwendet) rootProject.name = 'projectName'

build.gradle

(9)

Tasks

Tasks (gradle -q tasks)

Aufgaben die Gradle erledigen kann

Verschiedene Typen von Tasks

Koennen Abhängigkeiten haben

Gradle bringt grundlegende tasks (Sprachenunabhängig) mit

Weitere Tasks

Ueber Plugins (zB. java, maven)

Selbst definieren

Beispiel: gradle test

(10)

Java Plugin – Java spezifsche tasks

Was bekomme ich?

build.gradle build.gradle

apply plugin: 'java' Was muss ich tun?

Konsole

gradle build

(11)

Java

Javadoc Clean Welche Taks gibt es?

Java Plugin Java Plugin – Java spezifsche tasks

Das Projekt wird kompiliert

Javadoc wird erzeugt

Die Test werden ausgeführt

Jar wird erzeugt und im Ordner moduleRoot/build gespeichert

(12)

Tasks Konfgurieren

dependencies {

compile group: 'org.slf4j', name: 'slf4j-api', version:'1.21' testCompile group: 'junit', name: 'junit', version: '4.12'

}

jar {

baseName = 'fancy-App' manifest {

attributes 'Main-Class': 'package.path.to.your.MainClass' }

}

(13)

Repositories

build.gradle

repositories{

mavenCentral() mavenLocal() maven {

url “http://repo.xyz.de/maven2“

} }

(14)

Eine Anwendung starten

build.gradle build.gradle

apply plugin: 'application'

mainClassName = „de.fsu.example.Test“

applicationDefaultJvmArgs = [„-Xmx4G“]

/src/main/java/de/fsu/Example.java

package de.fsu.example;

public class Test {

public static void main(String[] args){

System.out.println("Programm gestartet");}

> gradle run

:compileJava UP-TO-DATE

:processResources UP-TO-DATE :classes UP-TO-DATE

:run

Programm gestartet BUILD SUCCESSFUL

Total time: 4.55 secs

Konsole

(15)

Projekt ins lokale Repository packen

build.gradle build.gradle

apply plugin: 'maven'

> gradle install Konsole

(16)

Installationen

Was brauchen wir:

Java Installation (JDK)

Test: java -version

Groovy installation

Test: groovy -v

Gradle installation

(17)

Installation von Groovy

Siehe auch http://groovy-lang.org/install.html (5.Install binary)

Groovy 2.4.X herunterladen und in geeignetes Verzeichnis entpacken

Anpassungen in ~/.bashrc oder ~/.profile:

export GROOVY_HOME="/path/to/groovy-2.4.X/"

export PATH="${PATH}:${GROOVY_HOME}/bin"

(18)

Installation von Gradle

Siehe auch http://www.gradle.org/installation (Install manually)

Gradle 3.x.x herunterladen und in geeignetes Verzeichnis entpacken

Anpassungen in ~/.bashrc oder ~/.profile:

export GRADLE_HOME="/path/to/gradle-3.4/"

export PATH="${PATH}:${GRADLE_HOME}/bin"

Referenzen

ÄHNLICHE DOKUMENTE

• Asynchronous calls are wrapped into special task objects that also deal with parameter transfer. • Simple optimizations aviod that unnessary futures

default – das Target, das ausgeführt wird, wenn kein anderes angegeben wird. basedir – das Wurzelverzeichnis des Projekts

Aber die Zahlen der Blutspender im Gebiet des DRK-Blutspendedienstes West zeigen, dass im Juli 2017 14.713 Blutspender mehr kamen als im Juli 2016.. Im August flaute die Wirkung ab,

„Ziel der Stadt Kronberg ist, dass alle Kinder wieder die Möglichkeit er- halten – wenn auch nicht in vollem Umfang – ihre Betreuungseinrichtungen aufzusuchen und damit

Using the former Austrian documentation needs some knowledge on cadastre and surveying and also particular experience of the surveyors. Frequently, surveyors get some doubts when

settings.gradle (Optional: sonst wird Verzeichnisname verwendet) rootProject.name =

In this chapter we have examined different software development models (i.e. Waterfall, V- model, Spiral and Agile models) and their testing levels. Our purpose was to

Trägt der Infizierte einen Mundschutz, kann dies durch- aus etwas bringen, denn die Tröpfchen sind so groß, dass zumindest ein Teil im Mund- schutz hängen bleibt.. Aber auch