plugins { id 'java-library' } tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'maven' repositories { mavenCentral() maven { url = "https://maven.speiger.com/repository/main" } } archivesBaseName = 'Primitive Collections' version = '0.3.5'; sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8' javadoc { options.tags = [ "implSpec", "note" ] } eclipse { classpath { downloadJavadoc = true downloadSources = true file { whenMerged { //Enforce a custom container and allowing access to the sun.misc package which is nessesary for EnumMaps entries.find{ it.kind == 'con' && it.path.startsWith('org.eclipse.jdt')}.path = 'org.eclipse.jdt.launching.JRE_CONTAINER'; } } } } compileJava { options.compilerArgs << '-XDignore.symbol.file' options.fork = true options.forkOptions.executable = 'javac' // may not needed on 1.8 } sourceSets { builder } configurations { builderCompile.extendsFrom compile } dependencies { builderCompile 'de.speiger:Simple-Code-Generator:1.0.4' runtimeOnly 'de.speiger:Simple-Code-Generator:1.0.4' testImplementation 'junit:junit:4.12' } task generateSource(type: JavaExec) { group = 'internal' description = 'Builds the sourcecode' classpath = sourceSets.builder.runtimeClasspath main = 'speiger.src.builder.PrimitiveCollectionsBuilder' } task forceGenerateSource(type: JavaExec) { group = 'internal' description = 'Builds the sourcecode forceful' classpath = sourceSets.builder.runtimeClasspath main = 'speiger.src.builder.PrimitiveCollectionsBuilder' args = ['true'] } task javadocJar(type: Jar) { from javadoc classifier = 'javadoc' } task srcJar(type: Jar) { from sourceSets.main.allSource classifier = 'sources' } javadoc.failOnError = false javadoc.options.memberLevel = JavadocMemberLevel.PUBLIC javadoc.options.quiet() artifacts { archives javadocJar archives srcJar } test { useJUnit() } uploadArchives { repositories.mavenDeployer { repository(url: 'https://maven.speiger.com/repository/main') { authentication(userName: project.properties.mavenUser, password: project.properties.mavenPassword) } snapshotRepository(url: 'https://maven.speiger.com/repository/main') { authentication(userName: project.properties.mavenUser, password: project.properties.mavenPassword) } pom { version = project.version artifactId = project.archivesBaseName.replace(" ", "-") groupId = 'de.speiger' project { licenses { license { name = 'The Apache License, Version 2.0' url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' } } developers { developer { id = 'speiger' name = 'Speiger' email = 'speiger@gmx.net' } } } } } }