buildscript { repositories { mavenCentral() } } plugins { id 'pl.allegro.tech.build.axion-release' version '1.13.3' id "nebula.provided-base" version "3.0.3" id "biz.aQute.bnd.builder" version "$bndVersion" } apply plugin: 'java' apply plugin: 'java-library' apply plugin: 'eclipse' apply plugin: 'groovy' //apply plugin: 'checkstyle' //apply plugin: 'findbugs' //apply plugin: 'pmd' //apply plugin: 'codenarc' apply plugin: 'maven-publish' apply plugin: 'jacoco' apply plugin: 'signing' apply plugin: 'nebula.optional-base' group = 'org.mnode.mstor' description = ''' A JavaMail provider for persistent email storage ''' sourceCompatibility = 1.8 targetCompatibility = 1.8 compileJava { options.release = 8 } //[checkstyle, pmd]*.ignoreFailures = true //checkstyle.configProperties = ['checkstyle.suppressions.file': 'config/checkstyle/default-suppressions.xml'] repositories { mavenCentral() maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } } dependencies { api "com.sun.mail:jakarta.mail:$jakartaMailVersion", "org.slf4j:slf4j-api:$slf4jVersion" implementation "org.apache.commons:commons-lang3:$commonsLangVersion", "commons-net:commons-net:$commonsNetVersion", "jdom:jdom:$jdomVersion", "com.thoughtworks.xstream:xstream:$xstreamVersion", "org.jyaml:jyaml:$jyamlVersion", "javax.jcr:jcr:$jcrVersion", "org.jcrom:jcrom:$jcromVersion", "net.sf.ehcache:ehcache-core:$ehcacheVersion", "commons-io:commons-io:$commonsIoVersion", "org.codehaus.groovy:groovy:$groovyVersion", "cglib:cglib:$cglibVersion", "org.slf4j:jul-to-slf4j:$slf4jVersion", "org.slf4j:jcl-over-slf4j:$slf4jVersion", "org.apache.jackrabbit:jackrabbit-jcr-rmi:$jackrabbitVersion" implementation "org.jparsec:jparsec:$jparsecVersion", optional // used in javadoc generation.. compileOnly 'biz.aQute.bnd:bndlib:2.4.0' runtime "commons-logging:commons-logging:$commonsLoggingVersion" testImplementation "org.apache.jackrabbit:jackrabbit-core:$jackrabbitVersion", "junit:junit:$junitVersion", "ch.qos.logback:logback-classic:$logbackVersion" // junit testImplementation 'org.junit.vintage:junit-vintage-engine:5.8.2' // spock testImplementation platform("org.spockframework:spock-bom:2.0-M4-groovy-3.0"), "org.spockframework:spock-core" } jacocoTestReport { reports { xml.enabled true html.enabled false } } javadoc { if (JavaVersion.current().isJava8Compatible()) { options.addStringOption('Xdoclint:none', '-quiet') } options { links 'https://docs.oracle.com/en/java/javase/11/docs/api/' } } task javadocJar(type: Jar, dependsOn: javadoc) { archiveClassifier.set('javadoc') from 'build/docs/javadoc' } task sourcesJar(type: Jar) { from sourceSets.main.allSource archiveClassifier.set('sources') } artifacts { archives jar archives javadocJar archives sourcesJar } scmVersion { tag { prefix = 'mstor-' } versionCreator 'versionWithBranch' branchVersionCreator = ['master': 'simple'] nextVersion { suffix = 'pre' separator = '-' } } group = 'org.mnode.mstor' description = ''' An mbox provider for JavaMail ''' version = scmVersion.version ext { isReleaseVersion = !version.endsWith("SNAPSHOT") } test { include '**/*Test.class' include '**/*Spec.class' exclude '**/AbstractMStorTest.class' exclude '**/MessedUpCacheTest.class' exclude '**/MStorStoreTest.class' exclude '**/MStorFolderTest.class' exclude '**/MStorMessageTest.class' exclude '**/UIDFolderTest.class' exclude '**/TagsTermTest.class' exclude '**/TagTest.class' exclude '**/*IntegrationTest.class' } task integrationTest(type: Test, dependsOn: 'test') doLast { include '**/*IntegrationTest.class' } publishing { publications { mstor(MavenPublication) { from components.java artifact javadocJar artifact sourcesJar pom.withXml { asNode().appendNode('name', project.name) asNode().appendNode('description', project.description) asNode().appendNode('url', 'http://basepatterns.org') def scmNode = asNode().appendNode('scm') scmNode.appendNode('url', 'https://github.com/benfortuna/mstor') scmNode.appendNode('connection', 'scm:git@github.com:benfortuna/mstor.git') scmNode.appendNode('developerConnection', 'scm:git@github.com:benfortuns/mstor.git') def licenseNode = asNode().appendNode('licenses').appendNode('license') licenseNode.appendNode('name', 'BSD-3-Clause') licenseNode.appendNode('url', 'https://raw.githubusercontent.com/benfortuna/mstor/master/LICENSE') licenseNode.appendNode('distribution', 'repo') def developerNode = asNode().appendNode('developers').appendNode('developer') developerNode.appendNode('id', 'fortuna') developerNode.appendNode('name', 'Ben Fortuna') } } } repositories { maven { name = "OSSRH" url = !isReleaseVersion ? "https://oss.sonatype.org/content/repositories/snapshots/" : "https://oss.sonatype.org/service/local/staging/deploy/maven2/" credentials { username = System.getenv("MAVEN_USERNAME") password = System.getenv("MAVEN_PASSWORD") } } } } signing { required { isReleaseVersion } sign publishing.publications.mstor }