buildscript { def a_user = hasProperty('artifactory_user') ? artifactory_user : System.getenv('artifactory_user') def a_password = hasProperty('artifactory_password') ? artifactory_password : System.getenv('artifactory_password') repositories { mavenCentral() jcenter() maven { url 'http://dl.bintray.com/cbeust/maven' } maven { url 'http://oss.jfrog.org/artifactory/plugins-release' credentials { username = "${a_user}" password = "${a_password}" } } } dependencies { //Check for the latest version here: http://plugins.gradle.org/plugin/com.jfrog.artifactory classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.0.3" classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.5.3" classpath "com.netflix.nebula:gradle-extra-configurations-plugin:3.0.3" } } plugins { id "com.jfrog.bintray" version "1.2" id "com.jfrog.artifactory" version "3.1.1" id "org.sonarqube" version "1.0" } version = '6.9.10-SNAPSHOT' apply plugin: 'java' apply plugin: 'nebula.optional-base' apply plugin: 'nebula.provided-base' targetCompatibility = "1.7" sourceCompatibility = "1.7" apply plugin: 'osgi' repositories { mavenCentral() jcenter() maven { url 'http://dl.bintray.com/cbeust/maven' } } dependencies { compile 'org.beanshell:bsh:2.0b4' compile 'com.beust:jcommander:1.48' compile 'org.apache.ant:ant:1.7.0', optional compile 'junit:junit:4.10', optional compile 'org.yaml:snakeyaml:1.15', optional provided 'com.google.inject:guice:4.0:no_aop' testCompile 'org.assertj:assertj-core:2.0.0' testCompile 'org.testng:testng:6.9.4' } task sourceJar(type: Jar) { group 'Build' description 'An archive of the source code' classifier 'sources' from sourceSets.main.allSource } artifacts { sourceJar } import org.apache.tools.ant.filters.ReplaceTokens def generatedSourcesFolder = projectDir.toString() + '/src/generated/java' def dirFrom = projectDir.toString() + '/src/main/resources/org/testng/internal' def dirTo = generatedSourcesFolder + "/org/testng/internal" def fileFrom = 'VersionTemplateJava' def fileTo = 'Version.java' task removeVersion { delete dirTo + fileTo } sourceSets { generated { java { srcDir 'src/generated/java' } resources { srcDir 'src/generated/resources' } } } sourceSets { main { compileClasspath += generated.output runtimeClasspath += generated.output } } gradle.projectsEvaluated { compileJava.dependsOn(myDir) } task myDir { delete dirTo + "/" + fileTo mkdir(dirTo) } // Include the generated Version.class in the jar jar { manifest { instruction 'Bundle-License', 'http://apache.org/licenses/LICENSE-2.0' instruction 'Bundle-Description', 'TestNG is a testing framework.' instruction 'Import-Package', 'bsh.*;version="[2.0.0,3.0.0)";resolution:=optional', 'com.beust.jcommander.*;version="[1.7.0,3.0.0)";resolution:=optional', 'com.google.inject.*;version="[1.2,1.3)";resolution:=optional', 'junit.framework;version="[3.8.1, 5.0.0)";resolution:=optional', 'org.junit.*;resolution:=optional', 'org.apache.tools.ant.*;version="[1.7.0, 2.0.0)";resolution:=optional', 'org.yaml.*;version="[1.6,2.0)";resolution:=optional', '!com.beust.testng', '!org.testng.*', '!com.sun.*', '*' } from "$buildDir/classes/generated" } task createVersion(type: Copy, dependsOn: myDir) { println("Creating Version file: ${version} in ${dirTo}") from dirFrom include fileFrom into(dirTo) rename(fileFrom, fileTo) filter(ReplaceTokens, tokens: [version: version]) } compileJava.dependsOn(createVersion) test { useTestNG() { suites 'src/test/resources/testng.xml' } // testLogging.showStandardStreams = true systemProperties = System.getProperties() systemProperties['test.resources.dir'] = 'build/resources/test/' } if (JavaVersion.current().isJava8Compatible()) { allprojects { tasks.withType(Javadoc) { options.addStringOption('Xdoclint:none', '-quiet') } } } sonarqube { properties { property "sonar.host.url", "http://nemo.sonarqube.org" property "sonar.analysis.mode", "preview" property "sonar.github.repository", "cbeust/testng" property "sonar.github.login", "testng-bot" } } apply from: 'gradle/publishing.gradle'