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