1*83a54b2fSSadaf Ebrahimibuildscript { 2*83a54b2fSSadaf Ebrahimi 3*83a54b2fSSadaf Ebrahimi def a_user = hasProperty('artifactory_user') ? artifactory_user : System.getenv('artifactory_user') 4*83a54b2fSSadaf Ebrahimi def a_password = hasProperty('artifactory_password') ? artifactory_password : System.getenv('artifactory_password') 5*83a54b2fSSadaf Ebrahimi 6*83a54b2fSSadaf Ebrahimi repositories { 7*83a54b2fSSadaf Ebrahimi mavenCentral() 8*83a54b2fSSadaf Ebrahimi jcenter() 9*83a54b2fSSadaf Ebrahimi maven { 10*83a54b2fSSadaf Ebrahimi url 'http://dl.bintray.com/cbeust/maven' 11*83a54b2fSSadaf Ebrahimi } 12*83a54b2fSSadaf Ebrahimi maven { 13*83a54b2fSSadaf Ebrahimi url 'http://oss.jfrog.org/artifactory/plugins-release' 14*83a54b2fSSadaf Ebrahimi credentials { 15*83a54b2fSSadaf Ebrahimi username = "${a_user}" 16*83a54b2fSSadaf Ebrahimi password = "${a_password}" 17*83a54b2fSSadaf Ebrahimi } 18*83a54b2fSSadaf Ebrahimi } 19*83a54b2fSSadaf Ebrahimi } 20*83a54b2fSSadaf Ebrahimi 21*83a54b2fSSadaf Ebrahimi dependencies { 22*83a54b2fSSadaf Ebrahimi //Check for the latest version here: http://plugins.gradle.org/plugin/com.jfrog.artifactory 23*83a54b2fSSadaf Ebrahimi classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.0.3" 24*83a54b2fSSadaf Ebrahimi classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.5.3" 25*83a54b2fSSadaf Ebrahimi classpath "com.netflix.nebula:gradle-extra-configurations-plugin:3.0.3" 26*83a54b2fSSadaf Ebrahimi } 27*83a54b2fSSadaf Ebrahimi} 28*83a54b2fSSadaf Ebrahimi 29*83a54b2fSSadaf Ebrahimiplugins { 30*83a54b2fSSadaf Ebrahimi id "com.jfrog.bintray" version "1.2" 31*83a54b2fSSadaf Ebrahimi id "com.jfrog.artifactory" version "3.1.1" 32*83a54b2fSSadaf Ebrahimi id "org.sonarqube" version "1.0" 33*83a54b2fSSadaf Ebrahimi} 34*83a54b2fSSadaf Ebrahimi 35*83a54b2fSSadaf Ebrahimiversion = '6.9.10-SNAPSHOT' 36*83a54b2fSSadaf Ebrahimi 37*83a54b2fSSadaf Ebrahimiapply plugin: 'java' 38*83a54b2fSSadaf Ebrahimiapply plugin: 'nebula.optional-base' 39*83a54b2fSSadaf Ebrahimiapply plugin: 'nebula.provided-base' 40*83a54b2fSSadaf Ebrahimi 41*83a54b2fSSadaf EbrahimitargetCompatibility = "1.7" 42*83a54b2fSSadaf EbrahimisourceCompatibility = "1.7" 43*83a54b2fSSadaf Ebrahimi 44*83a54b2fSSadaf Ebrahimiapply plugin: 'osgi' 45*83a54b2fSSadaf Ebrahimi 46*83a54b2fSSadaf Ebrahimirepositories { 47*83a54b2fSSadaf Ebrahimi mavenCentral() 48*83a54b2fSSadaf Ebrahimi jcenter() 49*83a54b2fSSadaf Ebrahimi maven { 50*83a54b2fSSadaf Ebrahimi url 'http://dl.bintray.com/cbeust/maven' 51*83a54b2fSSadaf Ebrahimi } 52*83a54b2fSSadaf Ebrahimi} 53*83a54b2fSSadaf Ebrahimi 54*83a54b2fSSadaf Ebrahimidependencies { 55*83a54b2fSSadaf Ebrahimi compile 'org.beanshell:bsh:2.0b4' 56*83a54b2fSSadaf Ebrahimi compile 'com.beust:jcommander:1.48' 57*83a54b2fSSadaf Ebrahimi 58*83a54b2fSSadaf Ebrahimi compile 'org.apache.ant:ant:1.7.0', optional 59*83a54b2fSSadaf Ebrahimi compile 'junit:junit:4.10', optional 60*83a54b2fSSadaf Ebrahimi compile 'org.yaml:snakeyaml:1.15', optional 61*83a54b2fSSadaf Ebrahimi 62*83a54b2fSSadaf Ebrahimi provided 'com.google.inject:guice:4.0:no_aop' 63*83a54b2fSSadaf Ebrahimi 64*83a54b2fSSadaf Ebrahimi testCompile 'org.assertj:assertj-core:2.0.0' 65*83a54b2fSSadaf Ebrahimi testCompile 'org.testng:testng:6.9.4' 66*83a54b2fSSadaf Ebrahimi} 67*83a54b2fSSadaf Ebrahimi 68*83a54b2fSSadaf Ebrahimitask sourceJar(type: Jar) { 69*83a54b2fSSadaf Ebrahimi group 'Build' 70*83a54b2fSSadaf Ebrahimi description 'An archive of the source code' 71*83a54b2fSSadaf Ebrahimi classifier 'sources' 72*83a54b2fSSadaf Ebrahimi from sourceSets.main.allSource 73*83a54b2fSSadaf Ebrahimi} 74*83a54b2fSSadaf Ebrahimi 75*83a54b2fSSadaf Ebrahimiartifacts { 76*83a54b2fSSadaf Ebrahimi sourceJar 77*83a54b2fSSadaf Ebrahimi} 78*83a54b2fSSadaf Ebrahimi 79*83a54b2fSSadaf Ebrahimiimport org.apache.tools.ant.filters.ReplaceTokens 80*83a54b2fSSadaf Ebrahimi 81*83a54b2fSSadaf Ebrahimidef generatedSourcesFolder = projectDir.toString() + '/src/generated/java' 82*83a54b2fSSadaf Ebrahimi 83*83a54b2fSSadaf Ebrahimidef dirFrom = projectDir.toString() + '/src/main/resources/org/testng/internal' 84*83a54b2fSSadaf Ebrahimidef dirTo = generatedSourcesFolder + "/org/testng/internal" 85*83a54b2fSSadaf Ebrahimidef fileFrom = 'VersionTemplateJava' 86*83a54b2fSSadaf Ebrahimidef fileTo = 'Version.java' 87*83a54b2fSSadaf Ebrahimi 88*83a54b2fSSadaf Ebrahimitask removeVersion { 89*83a54b2fSSadaf Ebrahimi delete dirTo + fileTo 90*83a54b2fSSadaf Ebrahimi} 91*83a54b2fSSadaf Ebrahimi 92*83a54b2fSSadaf EbrahimisourceSets { 93*83a54b2fSSadaf Ebrahimi generated { 94*83a54b2fSSadaf Ebrahimi java { 95*83a54b2fSSadaf Ebrahimi srcDir 'src/generated/java' 96*83a54b2fSSadaf Ebrahimi } 97*83a54b2fSSadaf Ebrahimi resources { 98*83a54b2fSSadaf Ebrahimi srcDir 'src/generated/resources' 99*83a54b2fSSadaf Ebrahimi } 100*83a54b2fSSadaf Ebrahimi } 101*83a54b2fSSadaf Ebrahimi} 102*83a54b2fSSadaf Ebrahimi 103*83a54b2fSSadaf EbrahimisourceSets { 104*83a54b2fSSadaf Ebrahimi main { 105*83a54b2fSSadaf Ebrahimi compileClasspath += generated.output 106*83a54b2fSSadaf Ebrahimi runtimeClasspath += generated.output 107*83a54b2fSSadaf Ebrahimi } 108*83a54b2fSSadaf Ebrahimi} 109*83a54b2fSSadaf Ebrahimi 110*83a54b2fSSadaf Ebrahimigradle.projectsEvaluated { 111*83a54b2fSSadaf Ebrahimi compileJava.dependsOn(myDir) 112*83a54b2fSSadaf Ebrahimi} 113*83a54b2fSSadaf Ebrahimi 114*83a54b2fSSadaf Ebrahimitask myDir { 115*83a54b2fSSadaf Ebrahimi delete dirTo + "/" + fileTo 116*83a54b2fSSadaf Ebrahimi mkdir(dirTo) 117*83a54b2fSSadaf Ebrahimi} 118*83a54b2fSSadaf Ebrahimi 119*83a54b2fSSadaf Ebrahimi// Include the generated Version.class in the jar 120*83a54b2fSSadaf Ebrahimijar { 121*83a54b2fSSadaf Ebrahimi manifest { 122*83a54b2fSSadaf Ebrahimi instruction 'Bundle-License', 'http://apache.org/licenses/LICENSE-2.0' 123*83a54b2fSSadaf Ebrahimi instruction 'Bundle-Description', 'TestNG is a testing framework.' 124*83a54b2fSSadaf Ebrahimi instruction 'Import-Package', 125*83a54b2fSSadaf Ebrahimi 'bsh.*;version="[2.0.0,3.0.0)";resolution:=optional', 126*83a54b2fSSadaf Ebrahimi 'com.beust.jcommander.*;version="[1.7.0,3.0.0)";resolution:=optional', 127*83a54b2fSSadaf Ebrahimi 'com.google.inject.*;version="[1.2,1.3)";resolution:=optional', 128*83a54b2fSSadaf Ebrahimi 'junit.framework;version="[3.8.1, 5.0.0)";resolution:=optional', 129*83a54b2fSSadaf Ebrahimi 'org.junit.*;resolution:=optional', 130*83a54b2fSSadaf Ebrahimi 'org.apache.tools.ant.*;version="[1.7.0, 2.0.0)";resolution:=optional', 131*83a54b2fSSadaf Ebrahimi 'org.yaml.*;version="[1.6,2.0)";resolution:=optional', 132*83a54b2fSSadaf Ebrahimi '!com.beust.testng', 133*83a54b2fSSadaf Ebrahimi '!org.testng.*', 134*83a54b2fSSadaf Ebrahimi '!com.sun.*', 135*83a54b2fSSadaf Ebrahimi '*' 136*83a54b2fSSadaf Ebrahimi } 137*83a54b2fSSadaf Ebrahimi from "$buildDir/classes/generated" 138*83a54b2fSSadaf Ebrahimi} 139*83a54b2fSSadaf Ebrahimi 140*83a54b2fSSadaf Ebrahimitask createVersion(type: Copy, dependsOn: myDir) { 141*83a54b2fSSadaf Ebrahimi println("Creating Version file: ${version} in ${dirTo}") 142*83a54b2fSSadaf Ebrahimi from dirFrom 143*83a54b2fSSadaf Ebrahimi include fileFrom 144*83a54b2fSSadaf Ebrahimi into(dirTo) 145*83a54b2fSSadaf Ebrahimi rename(fileFrom, fileTo) 146*83a54b2fSSadaf Ebrahimi filter(ReplaceTokens, tokens: [version: version]) 147*83a54b2fSSadaf Ebrahimi} 148*83a54b2fSSadaf Ebrahimi 149*83a54b2fSSadaf EbrahimicompileJava.dependsOn(createVersion) 150*83a54b2fSSadaf Ebrahimi 151*83a54b2fSSadaf Ebrahimitest { 152*83a54b2fSSadaf Ebrahimi useTestNG() { 153*83a54b2fSSadaf Ebrahimi suites 'src/test/resources/testng.xml' 154*83a54b2fSSadaf Ebrahimi } 155*83a54b2fSSadaf Ebrahimi// testLogging.showStandardStreams = true 156*83a54b2fSSadaf Ebrahimi systemProperties = System.getProperties() 157*83a54b2fSSadaf Ebrahimi systemProperties['test.resources.dir'] = 'build/resources/test/' 158*83a54b2fSSadaf Ebrahimi} 159*83a54b2fSSadaf Ebrahimi 160*83a54b2fSSadaf Ebrahimiif (JavaVersion.current().isJava8Compatible()) { 161*83a54b2fSSadaf Ebrahimi allprojects { 162*83a54b2fSSadaf Ebrahimi tasks.withType(Javadoc) { 163*83a54b2fSSadaf Ebrahimi options.addStringOption('Xdoclint:none', '-quiet') 164*83a54b2fSSadaf Ebrahimi } 165*83a54b2fSSadaf Ebrahimi } 166*83a54b2fSSadaf Ebrahimi} 167*83a54b2fSSadaf Ebrahimi 168*83a54b2fSSadaf Ebrahimisonarqube { 169*83a54b2fSSadaf Ebrahimi properties { 170*83a54b2fSSadaf Ebrahimi property "sonar.host.url", "http://nemo.sonarqube.org" 171*83a54b2fSSadaf Ebrahimi property "sonar.analysis.mode", "preview" 172*83a54b2fSSadaf Ebrahimi property "sonar.github.repository", "cbeust/testng" 173*83a54b2fSSadaf Ebrahimi property "sonar.github.login", "testng-bot" 174*83a54b2fSSadaf Ebrahimi } 175*83a54b2fSSadaf Ebrahimi} 176*83a54b2fSSadaf Ebrahimi 177*83a54b2fSSadaf Ebrahimiapply from: 'gradle/publishing.gradle' 178