Vous êtes sur la page 1sur 15

Build Tool?

Funktionen

- kompiliert den Sourcecode in Binaries


- erstellt Software Package
- führt automatisierte Tests aus
- installiert die Software bzw. lädt sie in Repositories
- erstellt eine Dokumentation

Vertreter

- Make
- Ant
- Maven
- Gradle / Buildr
Hello World

build.gradle

task hello << {


println 'Hello world!'
}

Ausgabe

> gradle -q hello


Hello world!
Gradle basiert auf Groovy
build.gradle Ausgabe
task compute1 << { > gradle -q compute1
int i = 5 + 9 5 + 9 = 14
String s = '5 + 9 = '+i
println s > gradle -q compute2
} Ergebnis: 45
task compute2 << {
int j = 0
for(int i=1;i<10;i++){
j+=i
}
println 'Ergebnis: ' + j
}
Code hinzufügen
build.gradle build.gradle
task task1 task task2 << { println 'zwei' }
task1 << {
print 'Task' task2.doLast { println 'drei'}
}
task1 << { task2.doFirst { println 'eins'}
print ' 1'
}
Ausgabe
gradle -q task2
Ausgabe
eins
> gradle -q task1 zwei
Task 1 drei
Abhängigkeiten
build.gradle Ausgabe
task initDB << {println 'init DB'} > gradle -q t1
init DB
task initLog << {println 'init Log'} t1

task t1 (dependsOn: initDB) << { > gradle -q t2


println 't1' init DB
} init Log
t2
task t2 (dependsOn:
[initDB, initLog]) << {
println 't2'
}
Task Konfiguration
build.gradle
task initWebservice
initWebservice << { println 'starte Netzwerk' }
initWebservice << { println 'starte Webservice' }
initWebservice { println 'konfiguriere Netzwerk' }

Ausgabe

> gradle -b build.gradle initWebservice


konfiguriere Netzwerk
:initWebservice
starte Netzwerk
starte Webservice
Java
Dateikonventionen

- src/main/java, src/test/java für Source Files


- src/main/resources, src/test/resources für Bilder, Testfiles ...

Verfügbare Tasks
Java
Was muss ich tun?

build.gradle Konsole
apply plugin: 'java' gradle build

Was bekomme ich?

- Das Projekt wird kompiliert


- Die Test werden ausgeführt
- Ein Jar wird erzeugt und in build/libs gespeichert

Javadoc Clean Welche Taks gibt es?

Konsole Konsole Konsole


gradle javadoc gradle clean gradle tasks
Bibliotheken einbinden
build.gradle
repositories{
mavenCentral()
mavenLocal()
maven {
url “http://repo.xyz.de/maven2“
}
}

dependencies{
testCompile group: 'junit', name: 'junit', version: '4.+'
compile files('/usr/share/xyz.jar'),
fileTree(dir:'lib', include: '*.jar'),
"joda-time:joda-time:2.2"
}
Weitere Anpassungen
build.gradle
sourceCompatiblity = 1.7

jar {
baseName = 'fancy-App'
Version = '0.2.1'
manifest {
attributes 'Main-Class': 'de.fsu.bioinf.App'
}
}

- erzeugt das Jar mit dem Namen fancy-App-0.2.1.jar


- erzeugt ausführbares Jar
- schränkt die Kompatibilität auf Version 1.7 ein
Eine Anwendung starten

build.gradle Konsole
apply plugin: 'application' > gradle run
:compileJava UP-TO-DATE
mainClassName = „de.fsu.example.Test“
:processResources UP-TO-DATE
applicationDefaultJvmArgs = [„-Xmx4G“]
:classes UP-TO-DATE
:run
/src/main/java/de/fsu/Example.java Programm gestartet
package de.fsu.example;
public class Test { BUILD SUCCESSFUL
public static void main(String[] args){
System.out.println("Programm gestartet");} Total time: 4.55 secs
}
Projekt ins lokale Repository packen
build.gradle
apply plugin: 'maven'
group = 'de.unijena.bioinf'
Version = '0.2.1-SNAPSHOT'

Konsole

> gradle install

- Name entspricht Verzeichnisname des Projekts


- für anderen Namen:

settings.gradle
rootProject.name = 'newName'
Installation

(siehe http://www.gradle.org/installation )
- Gradle 2.8 herunterladen und ins home entpacken
- Anpassungen an ~/.bashrc:

.bashrc

export GRADLE_HOME="/home/xyz/gradle-2.8/"

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

- Test der Installation mit gradle -v


Literatur

Gradle User Guide


http://www.gradle.org/docs/current/userguide/userguide.html

Building and Testing with Gradle


http://it-ebooks.info/book/575/

Spring – Building Java Projects with Gradle


https://spring.io/guides/gs/gradle/

Vous aimerez peut-être aussi