|
|
@@ -15,20 +15,20 @@ |
|
|
|
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 |
|
|
@@ -42,22 +42,22 @@ Define properties for all projects, including this one |
|
|
|
|
|
|
|
*/ |
|
|
|
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 |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@@ -71,16 +71,16 @@ subprojects { |
|
|
|
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 |
|
|
|
|
|
|
@@ -88,18 +88,18 @@ subprojects { |
|
|
|
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" |
|
|
@@ -124,192 +124,192 @@ subprojects { |
|
|
|
// 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") |
|
|
|
} |
|
|
|
} |