xref: /aosp_15_r20/external/testng/build.gradle (revision 83a54b2f2026052c38867f4cde56111edcd60b56)
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