diff --git a/.gitignore b/.gitignore index fce08bf..66c6d02 100644 --- a/.gitignore +++ b/.gitignore @@ -1,20 +1,23 @@ +# All directories should end in / (information used by ide.gradle) + # Ant -ant +ant/ # Gradle -build +.gradle/ +build/ # Maven -target +target/ # Eclipse .classpath .project -.settings -bin +.settings/ +bin/ # IDEA *.iws *.ipr *.iml -out \ No newline at end of file +out/ \ No newline at end of file diff --git a/build.gradle b/build.gradle index 8c13be1..2772b85 100755 --- a/build.gradle +++ b/build.gradle @@ -1,44 +1,39 @@ apply plugin: "groovy" -apply plugin: "idea" -apply plugin: "eclipse" version = "0.6-SNAPSHOT" description = "Spock Framework - Example Project" repositories { - // Spock release versions are available from Maven Central + // Spock releases are available from Maven Central mavenCentral() - // only required if a snapshot version of Spock is used - maven { - url "http://m2repo.spockframework.org/snapshots" - } + // Spock development snapshots are available from Spock's Maven repo + maven { url "http://m2repo.spockframework.org/snapshots" } } dependencies { // mandatory dependencies for using Spock - groovy("org.codehaus.groovy:groovy-all:1.8.6") + groovy "org.codehaus.groovy:groovy-all:1.8.6" testCompile "org.spockframework:spock-core:0.6-groovy-1.8-rc-1" // optional dependencies for using Spock testCompile "org.hamcrest:hamcrest-core:1.2" // only necessary if Hamcrest matchers are used - testRuntime "cglib:cglib-nodep:2.2" // enables mocking of classes (in addition to interfaces) - testRuntime "org.objenesis:objenesis:1.2" // enables mocking of classes without default constructor (together with CGLIB) + testRuntime "cglib:cglib-nodep:2.2" // allows mocking of classes (in addition to interfaces) + testRuntime "org.objenesis:objenesis:1.2" // allows mocking of classes without default constructor (together with CGLIB) - // dependencies used by examples in this project (not required for using Spock) + // dependencies used by examples in this project testRuntime "com.h2database:h2:1.3.164" } -// copies all Jars used in this project into build/output/lib (not required for using Spock) +// the remaining configuration is specific to this project, and is not required for using Spock + +apply from: "gradle/ide.gradle" + task collectJars(type: Copy) { into "$buildDir/output/lib" from configurations.testRuntime } -// creates bootstrap files (gradlew etc.) for Gradle build (not required for using Spock) task wrapper(type: Wrapper) { gradleVersion = "1.0-milestone-8a" } - - - diff --git a/gradle/ide.gradle b/gradle/ide.gradle new file mode 100644 index 0000000..32069d0 --- /dev/null +++ b/gradle/ide.gradle @@ -0,0 +1,19 @@ +apply plugin: "idea" +apply plugin: "eclipse" + +def gitIgnoreDirs = files(file(".gitignore").readLines().findAll { !it.trim().startsWith("#") && it.trim().endsWith("/") }) + +idea { + project { + jdkName "1.6" + configure(modules) { + excludeDirs = gitIgnoreDirs as Set + } + ipr { + withXml { provider -> + def node = provider.asNode() + node.component.find { it.'@name' == 'VcsDirectoryMappings' }?.mapping[0].'@vcs' = 'Git' + } + } + } +} \ No newline at end of file