limitations under the License.
==================================================================== */
buildscript {
- repositories {
- maven { url "https://plugins.gradle.org/m2/" }
- }
-
- dependencies {
- classpath 'me.champeau.gradle:japicmp-gradle-plugin:0.1.2' // 2.x requires Gradle >=4
- classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.5"
- }
+ repositories {
+ maven { url "https://plugins.gradle.org/m2/" }
+ }
+
+ dependencies {
+ classpath 'me.champeau.gradle:japicmp-gradle-plugin:0.1.2' // 2.x requires Gradle >=4
+ classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.5"
+ }
}
// Only add the plugin for Sonar if enabled
if (project.hasProperty('enableSonar')) {
- println 'Enabling Sonar support'
- apply plugin: "org.sonarqube"
+ println 'Enabling Sonar support'
+ apply plugin: "org.sonarqube"
}
// For help converting an Ant build to a Gradle build, see
*/
allprojects {
- apply plugin: 'eclipse'
-
- task wrapper(type: Wrapper) {
- gradleVersion = '3.4.1'
- }
-
- task adjustWrapperPropertiesFile {
- doLast {
- ant.replaceregexp(match:'^#.*', replace:'', flags:'g', byline:true) {
- fileset(dir: project.projectDir, includes: 'gradle/wrapper/gradle-wrapper.properties')
- }
- new File(project.projectDir, 'gradle/wrapper/gradle-wrapper.properties').with { it.text = it.readLines().findAll { it }.sort().join('\n') }
- ant.fixcrlf(file: 'gradle/wrapper/gradle-wrapper.properties', eol: 'lf')
- }
- }
- wrapper.finalizedBy adjustWrapperPropertiesFile
+ apply plugin: 'eclipse'
+
+ task wrapper(type: Wrapper) {
+ gradleVersion = '3.4.1'
+ }
+
+ task adjustWrapperPropertiesFile {
+ doLast {
+ ant.replaceregexp(match:'^#.*', replace:'', flags:'g', byline:true) {
+ fileset(dir: project.projectDir, includes: 'gradle/wrapper/gradle-wrapper.properties')
+ }
+ new File(project.projectDir, 'gradle/wrapper/gradle-wrapper.properties').with { it.text = it.readLines().findAll { it }.sort().join('\n') }
+ ant.fixcrlf(file: 'gradle/wrapper/gradle-wrapper.properties', eol: 'lf')
+ }
+ }
+ wrapper.finalizedBy adjustWrapperPropertiesFile
}
/**
apply plugin: 'jacoco'
// See https://github.com/melix/japicmp-gradle-plugin
- apply plugin: 'me.champeau.gradle.japicmp'
+ apply plugin: 'me.champeau.gradle.japicmp'
- version = '4.0.0-SNAPSHOT'
- ext {
- japicmpversion = '3.17'
- }
+ version = '4.0.0-SNAPSHOT'
+ ext {
+ japicmpversion = '3.17'
+ }
- tasks.withType(JavaCompile) {
- options.encoding = 'UTF-8'
- }
+ tasks.withType(JavaCompile) {
+ options.encoding = 'UTF-8'
+ }
sourceCompatibility = 1.8
mavenCentral()
}
- jar {
- manifest {
- attributes 'Implementation-Title': 'Apache POI', 'Implementation-Version': version
- }
- }
+ jar {
+ manifest {
+ attributes 'Implementation-Title': 'Apache POI', 'Implementation-Version': version
+ }
+ }
test {
- // Exclude some tests that are not actually tests or do not run cleanly on purpose
- exclude '**/BaseTestBorderStyle.class'
- exclude '**/BaseTestCellUtil.class'
- exclude '**/TestUnfixedBugs.class'
- exclude '**/TestOneFile.class'
+ // Exclude some tests that are not actually tests or do not run cleanly on purpose
+ exclude '**/BaseTestBorderStyle.class'
+ exclude '**/BaseTestCellUtil.class'
+ exclude '**/TestUnfixedBugs.class'
+ exclude '**/TestOneFile.class'
// set heap size for the test JVM(s)
minHeapSize = "128m"
// ensure the build-dir exists
projectDir.mkdirs()
- if (project.hasProperty('enableSonar')) {
- sonarqube {
- properties {
- // as we currently use build/<module>/ as project-basedir, we need to tell Sonar to use
- // the root-folder as "basedir" for the projects
- property "sonar.projectBaseDir", "$projectDir/../.."
- }
- }
- }
+ if (project.hasProperty('enableSonar')) {
+ sonarqube {
+ properties {
+ // as we currently use build/<module>/ as project-basedir, we need to tell Sonar to use
+ // the root-folder as "basedir" for the projects
+ property "sonar.projectBaseDir", "$projectDir/../.."
+ }
+ }
+ }
}
project('main') {
- sourceSets.main.java.srcDirs = ['../../src/java']
- sourceSets.main.resources.srcDirs = ['../../src/resources/main']
- sourceSets.test.java.srcDirs = ['../../src/testcases']
-
- dependencies {
- compile 'commons-codec:commons-codec:1.11'
- compile 'commons-logging:commons-logging:1.2'
- compile 'org.apache.commons:commons-collections4:4.1'
- compile 'org.apache.commons:commons-math3:3.6.1'
-
- testCompile 'junit:junit:4.12'
- }
-
- // Create a separate jar for test-code to depend on it in other projects
- // See http://stackoverflow.com/questions/5144325/gradle-test-dependency
- task testJar(type: Jar, dependsOn: testClasses) {
- baseName = "test-${project.archivesBaseName}"
- from sourceSets.test.output
- }
-
- configurations {
- tests
- }
-
- artifacts {
- tests testJar
- }
-
- // TOOD: we should not duplicate this task in each project, but I did not figure out how to inject the artifactId for each project
+ sourceSets.main.java.srcDirs = ['../../src/java']
+ sourceSets.main.resources.srcDirs = ['../../src/resources/main']
+ sourceSets.test.java.srcDirs = ['../../src/testcases']
+
+ dependencies {
+ compile 'commons-codec:commons-codec:1.11'
+ compile 'commons-logging:commons-logging:1.2'
+ compile 'org.apache.commons:commons-collections4:4.1'
+ compile 'org.apache.commons:commons-math3:3.6.1'
+
+ testCompile 'junit:junit:4.12'
+ }
+
+ // Create a separate jar for test-code to depend on it in other projects
+ // See http://stackoverflow.com/questions/5144325/gradle-test-dependency
+ task testJar(type: Jar, dependsOn: testClasses) {
+ baseName = "test-${project.archivesBaseName}"
+ from sourceSets.test.output
+ }
+
+ configurations {
+ tests
+ }
+
+ artifacts {
+ tests testJar
+ }
+
+ // TOOD: we should not duplicate this task in each project, but I did not figure out how to inject the artifactId for each project
task japicmp(type: me.champeau.gradle.ArtifactJapicmpTask, dependsOn: jar) {
- baseline = 'org.apache.poi:poi:' + japicmpversion + '@jar'
- to = jar.archivePath
- onlyModified = true
- onlyBinaryIncompatibleModified = true
- failOnModification = false
- txtOutputFile = file("$buildDir/reports/japi.txt")
- htmlOutputFile = file("$buildDir/reports/japi.html")
- }
+ baseline = 'org.apache.poi:poi:' + japicmpversion + '@jar'
+ to = jar.archivePath
+ onlyModified = true
+ onlyBinaryIncompatibleModified = true
+ failOnModification = false
+ txtOutputFile = file("$buildDir/reports/japi.txt")
+ htmlOutputFile = file("$buildDir/reports/japi.html")
+ }
}
project('ooxml') {
- sourceSets.main.java.srcDirs = ['../../src/ooxml/java']
- sourceSets.main.resources.srcDirs = ['../../src/ooxml/resources', '../../src/resources/ooxml']
- sourceSets.test.java.srcDirs = ['../../src/ooxml/testcases']
+ sourceSets.main.java.srcDirs = ['../../src/ooxml/java']
+ sourceSets.main.resources.srcDirs = ['../../src/ooxml/resources', '../../src/resources/ooxml']
+ sourceSets.test.java.srcDirs = ['../../src/ooxml/testcases']
// for now import the ant-task for building the jars from build.xml
// we need to rename the tasks as e.g. task "jar" conflicts with :ooxml:jar
- ant.importBuild('../../build.xml') { antTargetName ->
- 'ant-' + antTargetName
- }
- compileJava.dependsOn 'ant-compile-ooxml-xsds'
-
- dependencies {
- compile 'org.apache.xmlbeans:xmlbeans:2.6.0'
- compile 'org.apache.commons:commons-collections4:4.1'
- compile 'org.apache.commons:commons-math3:3.6.1'
- compile 'org.apache.commons:commons-compress:1.17'
- compile 'org.apache.santuario:xmlsec:2.1.0'
- compile 'org.bouncycastle:bcpkix-jdk15on:1.59'
- compile 'com.github.virtuald:curvesapi:1.05'
-
- // for ooxml-lite, should we move this somewhere else?
- compile 'junit:junit:4.12'
-
- compile project(':main')
- compile project(':scratchpad') // TODO: get rid of this dependency!
- compile files('../../ooxml-lib/ooxml-schemas-1.4.jar')
- compile files('../../ooxml-lib/ooxml-security-1.1.jar')
-
- testCompile 'junit:junit:4.12'
- testCompile 'org.mockito:mockito-core:2.13.0'
- testCompile 'org.xmlunit:xmlunit-core:2.5.1'
- testCompile project(path: ':main', configuration: 'tests')
- testCompile 'org.openjdk.jmh:jmh-core:1.19'
- testCompile 'org.openjdk.jmh:jmh-generator-annprocess:1.19'
- }
-
- // TODO: we should not duplicate this task in each project, but I did not figure out how to inject the artifactId for each project
+ ant.importBuild('../../build.xml') { antTargetName ->
+ 'ant-' + antTargetName
+ }
+ compileJava.dependsOn 'ant-compile-ooxml-xsds'
+
+ dependencies {
+ compile 'org.apache.xmlbeans:xmlbeans:2.6.0'
+ compile 'org.apache.commons:commons-collections4:4.1'
+ compile 'org.apache.commons:commons-math3:3.6.1'
+ compile 'org.apache.commons:commons-compress:1.17'
+ compile 'org.apache.santuario:xmlsec:2.1.0'
+ compile 'org.bouncycastle:bcpkix-jdk15on:1.59'
+ compile 'com.github.virtuald:curvesapi:1.05'
+
+ // for ooxml-lite, should we move this somewhere else?
+ compile 'junit:junit:4.12'
+
+ compile project(':main')
+ compile project(':scratchpad') // TODO: get rid of this dependency!
+ compile files('../../ooxml-lib/ooxml-schemas-1.4.jar')
+ compile files('../../ooxml-lib/ooxml-security-1.1.jar')
+
+ testCompile 'junit:junit:4.12'
+ testCompile 'org.mockito:mockito-core:2.13.0'
+ testCompile 'org.xmlunit:xmlunit-core:2.5.1'
+ testCompile project(path: ':main', configuration: 'tests')
+ testCompile 'org.openjdk.jmh:jmh-core:1.19'
+ testCompile 'org.openjdk.jmh:jmh-generator-annprocess:1.19'
+ }
+
+ // TODO: we should not duplicate this task in each project, but I did not figure out how to inject the artifactId for each project
task japicmp(type: me.champeau.gradle.ArtifactJapicmpTask, dependsOn: jar) {
- baseline = 'org.apache.poi:poi-ooxml:' + japicmpversion + '@jar'
- to = jar.archivePath
- onlyModified = true
- onlyBinaryIncompatibleModified = true
- failOnModification = false
- txtOutputFile = file("$buildDir/reports/japi.txt")
- htmlOutputFile = file("$buildDir/reports/japi.html")
- }
+ baseline = 'org.apache.poi:poi-ooxml:' + japicmpversion + '@jar'
+ to = jar.archivePath
+ onlyModified = true
+ onlyBinaryIncompatibleModified = true
+ failOnModification = false
+ txtOutputFile = file("$buildDir/reports/japi.txt")
+ htmlOutputFile = file("$buildDir/reports/japi.html")
+ }
}
project('examples') {
- sourceSets.main.java.srcDirs = ['../../src/examples/src']
-
- dependencies {
- compile project(':main')
- compile project(':ooxml')
- }
+ sourceSets.main.java.srcDirs = ['../../src/examples/src']
+
+ dependencies {
+ compile project(':main')
+ compile project(':ooxml')
+ }
}
project('excelant') {
- sourceSets.main.java.srcDirs = ['../../src/excelant/java']
- sourceSets.main.resources.srcDirs = ['../../src/excelant/resources']
- sourceSets.test.java.srcDirs = ['../../src/excelant/testcases']
-
- dependencies {
- compile 'org.apache.ant:ant:1.10.1'
+ sourceSets.main.java.srcDirs = ['../../src/excelant/java']
+ sourceSets.main.resources.srcDirs = ['../../src/excelant/resources']
+ sourceSets.test.java.srcDirs = ['../../src/excelant/testcases']
+
+ dependencies {
+ compile 'org.apache.ant:ant:1.10.1'
- compile project(':main')
- compile project(':ooxml')
+ compile project(':main')
+ compile project(':ooxml')
- testCompile project(path: ':main', configuration: 'tests')
- }
+ testCompile project(path: ':main', configuration: 'tests')
+ }
- // TOOD: we should not duplicate this task in each project, but I did not figure out how to inject the artifactId for each project
+ // TOOD: we should not duplicate this task in each project, but I did not figure out how to inject the artifactId for each project
task japicmp(type: me.champeau.gradle.ArtifactJapicmpTask, dependsOn: jar) {
- baseline = 'org.apache.poi:poi-excelant:' + japicmpversion + '@jar'
- to = jar.archivePath
- onlyModified = true
- onlyBinaryIncompatibleModified = true
- failOnModification = false
- txtOutputFile = file("$buildDir/reports/japi.txt")
- htmlOutputFile = file("$buildDir/reports/japi.html")
- }
+ baseline = 'org.apache.poi:poi-excelant:' + japicmpversion + '@jar'
+ to = jar.archivePath
+ onlyModified = true
+ onlyBinaryIncompatibleModified = true
+ failOnModification = false
+ txtOutputFile = file("$buildDir/reports/japi.txt")
+ htmlOutputFile = file("$buildDir/reports/japi.html")
+ }
}
project('integrationtest') {
- sourceSets.test.java.srcDirs = ['../../src/integrationtest']
-
- dependencies {
- compile 'org.apache.ant:ant:1.10.1'
-
- compile project(':main')
- compile project(':ooxml')
- compile project(':scratchpad')
- compile project(':examples')
-
- testCompile 'junit:junit:4.12'
- }
+ sourceSets.test.java.srcDirs = ['../../src/integrationtest']
+
+ dependencies {
+ compile 'org.apache.ant:ant:1.10.1'
+
+ compile project(':main')
+ compile project(':ooxml')
+ compile project(':scratchpad')
+ compile project(':examples')
+
+ testCompile 'junit:junit:4.12'
+ }
test {
- // exclude these from the normal test-run
- exclude '**/TestAllFiles.class'
- exclude '**/*FileHandler.class'
- exclude '**/RecordsStresser.class'
- }
-
- task integrationTest(type: Test) {
- // these are just tests used during development of more test-code
- exclude '**/*FileHandler.class'
- exclude '**/RecordStresser.class'
- }
+ // exclude these from the normal test-run
+ exclude '**/TestAllFiles.class'
+ exclude '**/*FileHandler.class'
+ exclude '**/RecordsStresser.class'
+ }
+
+ task integrationTest(type: Test) {
+ // these are just tests used during development of more test-code
+ exclude '**/*FileHandler.class'
+ exclude '**/RecordStresser.class'
+ }
}
project('scratchpad') {
- sourceSets.main.java.srcDirs = ['../../src/scratchpad/src']
- sourceSets.main.resources.srcDirs = ['../../src/resources/scratchpad']
- sourceSets.test.java.srcDirs = ['../../src/scratchpad/testcases']
-
- dependencies {
- compile project(':main')
- // cyclic-dependency here: compile project(':ooxml')
-
- testCompile 'junit:junit:4.12'
- testCompile project(path: ':main', configuration: 'tests')
- }
-
- // TOOD: we should not duplicate this task in each project, but I did not figure out how to inject the artifactId for each project
+ sourceSets.main.java.srcDirs = ['../../src/scratchpad/src']
+ sourceSets.main.resources.srcDirs = ['../../src/resources/scratchpad']
+ sourceSets.test.java.srcDirs = ['../../src/scratchpad/testcases']
+
+ dependencies {
+ compile project(':main')
+ // cyclic-dependency here: compile project(':ooxml')
+
+ testCompile 'junit:junit:4.12'
+ testCompile project(path: ':main', configuration: 'tests')
+ }
+
+ // TOOD: we should not duplicate this task in each project, but I did not figure out how to inject the artifactId for each project
task japicmp(type: me.champeau.gradle.ArtifactJapicmpTask, dependsOn: jar) {
- baseline = 'org.apache.poi:poi-scratchpad:' + japicmpversion + '@jar'
- to = jar.archivePath
- onlyModified = true
- onlyBinaryIncompatibleModified = true
- failOnModification = false
- txtOutputFile = file("$buildDir/reports/japi.txt")
- htmlOutputFile = file("$buildDir/reports/japi.html")
- }
+ baseline = 'org.apache.poi:poi-scratchpad:' + japicmpversion + '@jar'
+ to = jar.archivePath
+ onlyModified = true
+ onlyBinaryIncompatibleModified = true
+ failOnModification = false
+ txtOutputFile = file("$buildDir/reports/japi.txt")
+ htmlOutputFile = file("$buildDir/reports/japi.html")
+ }
}