/* * Copyright 2015 AndroidPlot.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ plugins { id 'com.android.library' id 'com.dicedmelon.gradle.jacoco-android' id 'maven-publish' id 'signing' } class AttrMarkdown extends DefaultTask { def inFile def outFile @TaskAction def generate() { def input = project.file(inFile) def output = project.file(outFile) if(output.exists()) { output.delete() } output.parentFile.mkdirs() input.text.findAll(//) { match, g1 -> g1 if(!g1.startsWith("NODOC")) { output.append(g1) output.append "\n\n" } } } } /** * Generates xml attrs markdown docs. To run: * at the command line from the project root dir type: * ./gradlew generateAttrsMarkdown * * The generated doc will appear in / replace androidplot/docs/attrs.md */ task generateAttrsMarkdown(type: AttrMarkdown) { inFile = { "src/main/res/values/attrs.xml"} outFile = { "../docs/attrs.md" } } android { compileSdkVersion theCompileSdkVersion defaultConfig { minSdkVersion theMinSdkVersion targetSdkVersion theTargetSdkVersion testApplicationId "com.androidplot.test" } testOptions { unitTests.all { jacoco { includeNoLocationClasses = true jacoco.excludes = ['jdk.internal.*'] } } } lint { abortOnError false } } group = 'com.androidplot' version = theVersionName def siteUrl = 'http://androidplot.com' def gitUrl = 'https://github.com/halfhp/androidplot.git' dependencies { implementation 'com.halfhp.fig:figlib:1.0.11' implementation 'com.android.support:support-annotations:28.0.0' testImplementation "org.mockito:mockito-core:4.0.0" testImplementation group: 'junit', name: 'junit', version: '4.13.2' testImplementation "org.robolectric:robolectric:4.7.3" } task javadoc(type: Javadoc) { source = android.sourceSets.main.java.srcDirs classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) failOnError false options { links "http://docs.oracle.com/javase/7/docs/api/" linksOffline "http://d.android.com/reference","${android.sdkDirectory}/docs/reference" } exclude '**/BuildConfig.java' exclude '**/R.java' } task javadocJar(type: Jar, dependsOn: javadoc) { classifier = 'javadoc' from javadoc.destinationDir } task sourcesJar(type: Jar) { classifier = 'sources' from android.sourceSets.main.java.srcDirs } javadoc { options.overview = "src/main/java/overview.html" } afterEvaluate { publishing { repositories { maven { name = "Maven Central" url = "https://oss.sonatype.org/service/local/staging/deploy/maven2/" credentials { username = System.getenv("OSSRH_ACTOR") password = System.getenv("OSSRH_TOKEN") } } } publications { release(MavenPublication) { from components.release // You can then customize attributes of the publication as shown below. groupId = 'com.androidplot' artifactId = 'androidplot-core' version = theVersionName pom { packaging 'aar' name = 'Androidplot' description = "Configure any object from XML." url = gitUrl licenses { license { name = 'The Apache Software License, Version 2.0' url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' } } developers { developer { id = 'halfhp' name = 'Nick Fellows' email = 'halfhp@gmail.com' } } scm { connection = gitUrl developerConnection = gitUrl url = gitUrl } } } } } } afterEvaluate { signing { def signingKey = System.getenv("SIGNING_KEY") def signingPassword = System.getenv("SIGNING_PASSWORD") useInMemoryPgpKeys(signingKey, signingPassword) sign publishing.publications.release } } artifacts { archives javadocJar archives sourcesJar }