Konfiguracja Gradle'a - Grafart13/Toik_project GitHub Wiki
W projekcie zastosowano Gradle, jako narzędzie do automatycznego budowania i dodawania zależności do projektu.
Całość konfiguracji narzędzia zawarta jest w pliku build.gradle
apply plugin: 'java'
apply plugin: 'eclipse'
sourceCompatibility = 1.5
version = '1.0'
Konfiguracja AspectJ dla Gradle'a:
configurations {
ajc
springAspects
ajInpath
}
// adding plugin gradle-aspectj:1.5
buildscript {
repositories {
maven {
url "https://maven.eveoh.nl/content/repositories/releases"
}
}
dependencies {
classpath "nl.eveoh:gradle-aspectj:1.5"
}
}
project.ext {
aspectjVersion = '1.8.4'
}
apply plugin: 'aspectj'
Tworzenie jara z projektem, zostało zdefiniowane pod standardowym zadaniem jar jar { manifest { attributes 'Implementation-Title': 'ReportingGradle', 'Implementation-Version': version } }
Poza standardowym repozytorium mavenCentral, dodano repozytorium https://maven.atlassian.com/public, na którym znajdują się potrzebne do obsługi Jiry biblioteki.
repositories {
mavenCentral()
maven {
url "https://maven.atlassian.com/public"
}
}
Dodano odpowiednie zależności dla AspectJ i pozostałych paczek potrzebnych do projektu. dependencies { // of aspectJ ajc 'org.aspectj:aspectjtools:1.7.2' springAspects 'org.springframework:spring-aspects:3.0.5.RELEASE' compile "org.aspectj:aspectjrt:1.7.2" compile "javax.persistence:persistence-api:1.0"
// jira and other
compile (
[group: 'commons-collections', name: 'commons-collections', version: '3.2'],
[group: 'com.sun.jersey', name: 'jersey-json', version: '1.5'],
[group: 'com.sun.jersey', name: 'jersey-client', version: '1.9'],
[group: 'com.google.guava', name: 'guava', version: '14.0-rc1'],
[group: 'org.codehaus.jettison', name: 'jettison', version: '1.0.1'],
[group: 'org.slf4j', name: 'slf4j-simple', version: '1.6.4'],
[group: 'commons-io', name: 'commons-io', version: '2.4'],
[group: 'com.atlassian.jira', name: 'jira-rest-java-client-api', version: '2.0.0-m19'],
[group: 'com.atlassian.jira', name: 'jira-rest-java-client-core', version: '2.0.0-m19'],
[group: 'org.springframework', name: 'spring-tx', version: '3.2.3.RELEASE']
)
// additional dependence to junit testing
testCompile group: 'junit', name: 'junit', version: '4.+'
}
Utworzono zadanie umożliwiające kompilację aspektów compileAspect
compileAspect {
xlint= 'warning' //show AspectJ warnings on
maxmem = '1024m' // max heap size
}
I zadanie standardowe publikacji artefaktów
uploadArchives {
repositories {
flatDir {
dirs 'repos'
}
}
}
W celu zainstalowania zależności należy urochomić gradle'a przy użyciu taska buildDependents lub w celu ściągnięcia zależności i budowy projektu - build. Aby skompilowania aspectów, należy uruchomić gradle'a z taskiem compileAspect.