httpwizard/build.gradle

89 lines
2.6 KiB
Groovy

plugins {
/* Used for generating version manifests for the applications */
id 'org.ajoberstar.grgit' version '1.6.0'
/* Used for rendering the documentation for the applications */
id 'org.asciidoctor.gradle.asciidoctor' version '1.5.1'
}
/* Application plugin for creating tarballs of our app */
apply plugin: 'application'
/* Groovy plugin sets up the tasks for building the Groovy app */
apply plugin: 'groovy'
/* Enforce code-style checks on the Groovy code */
apply plugin: 'codenarc'
/* Set some basic project properties */
version = '0.0.1'
group = 'io.lasagna'
description = 'HttpWizard is a simple application for playing with HTTP'
mainClassName = 'io.lasagna.httpwizard.HttpWizard'
/* Force our target compatibility to JDK8 always */
project.targetCompatibility = 1.8
/**********************************************************************/
defaultTasks 'check'
repositories {
jcenter()
}
configurations {
localJavadocs
}
dependencies {
compile withSource('org.codehaus.groovy:groovy-all:[2.4.7,2.5.0)')
compile withSource("io.dropwizard:dropwizard-core:${dropwizardVersion}")
compile withSource("io.dropwizard:dropwizard-views-mustache:${dropwizardVersion}")
testCompile withSource("io.dropwizard:dropwizard-testing:${dropwizardVersion}")
testCompile withSource('org.spockframework:spock-core:1.0-groovy-2.4')
}
task generateExampleYaml {
def outputFile = "${buildDir}/httpwizard.example.yml"
group 'Build'
description "Generate ${outputFile} for running the app"
doLast {
file(outputFile).text = """---
appVersion: "${project.version}-${grgit.head().abbreviatedId}"
"""
}
outputs.file file(outputFile)
}
run {
args 'server', "${buildDir}/httpwizard.example.yml"
dependsOn generateExampleYaml
}
test {
testLogging {
/* we want more test failure information, see:
* <http://mrhaki.blogspot.com/2013/05/gradle-goodness-show-more-information.html>
*/
exceptionFormat = 'full'
events "passed", "skipped", "failed", "standardOut", "standardError"
}
}
def withSource(String dependency) {
configurations.localJavadocs.dependencies.add(dependencies.create("${dependency}:sources"))
return dependency
}
task localdoc(type: Javadoc) {
group 'Documentation'
description 'Generate javadoc for the dependencies of the project'
destinationDir = file("${buildDir}/generated-docs")
source = configurations.localJavadocs.files.collect { sourceArtifact ->
zipTree(sourceArtifact).findAll { it.name.endsWith('java') }
}
title 'Generated Docs'
failOnError false
}