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.