166 lines
5.2 KiB
Groovy
166 lines
5.2 KiB
Groovy
apply plugin: 'com.android.library'
|
|
apply plugin: 'maven-publish'
|
|
apply plugin: 'signing'
|
|
|
|
ext.artifactId = 'zxing-android-embedded'
|
|
|
|
|
|
// Publishing config from https://getstream.io/blog/publishing-libraries-to-mavencentral-2021/
|
|
ext["signing.keyId"] = ''
|
|
ext["signing.password"] = ''
|
|
ext["signing.secretKeyRingFile"] = ''
|
|
ext["ossrhUsername"] = ''
|
|
ext["ossrhPassword"] = ''
|
|
ext["sonatypeStagingProfileId"] = ''
|
|
|
|
File secretPropsFile = project.rootProject.file('local.properties')
|
|
if (secretPropsFile.exists()) {
|
|
Properties p = new Properties()
|
|
p.load(new FileInputStream(secretPropsFile))
|
|
p.each { name, value ->
|
|
ext[name] = value
|
|
}
|
|
} else {
|
|
ext["signing.keyId"] = System.getenv('SIGNING_KEY_ID')
|
|
ext["signing.password"] = System.getenv('SIGNING_PASSWORD')
|
|
ext["signing.secretKeyRingFile"] = System.getenv('SIGNING_SECRET_KEY_RING_FILE')
|
|
ext["ossrhUsername"] = System.getenv('OSSRH_USERNAME')
|
|
ext["ossrhPassword"] = System.getenv('OSSRH_PASSWORD')
|
|
ext["sonatypeStagingProfileId"] = System.getenv('SONATYPE_STAGING_PROFILE_ID')
|
|
}
|
|
|
|
|
|
dependencies {
|
|
api project.zxingCore
|
|
|
|
implementation 'androidx.core:core:1.6.0'
|
|
implementation 'androidx.fragment:fragment:1.3.6'
|
|
|
|
testImplementation 'junit:junit:4.13.1'
|
|
testImplementation 'org.mockito:mockito-core:1.9.5'
|
|
}
|
|
|
|
android {
|
|
resourcePrefix 'zxing_'
|
|
compileSdkVersion project.androidTargetSdk
|
|
|
|
sourceSets {
|
|
main {
|
|
manifest.srcFile 'AndroidManifest.xml'
|
|
java.srcDirs = ['src']
|
|
res.srcDirs = ['res-orig', 'res']
|
|
assets.srcDirs = ['assets']
|
|
}
|
|
test.setRoot('test')
|
|
}
|
|
|
|
// This is bad practice - we should fix the warnings instead.
|
|
lintOptions {
|
|
// Android warns about the he and id locale folders. he -> iw is already handled with a
|
|
// symlink. TODO: what about id?
|
|
disable 'LocaleFolder'
|
|
}
|
|
|
|
compileOptions {
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
}
|
|
|
|
testOptions {
|
|
// We test with primitives such as Rect, and rely on their default behaviour working.
|
|
unitTests.returnDefaultValues = true
|
|
}
|
|
|
|
defaultConfig {
|
|
minSdkVersion 19
|
|
}
|
|
|
|
buildTypes {
|
|
debug {
|
|
versionNameSuffix ".debug"
|
|
resValue "string", "app_version", "${defaultConfig.versionName}${versionNameSuffix}"
|
|
}
|
|
release {
|
|
resValue "string", "app_version", "${defaultConfig.versionName}"
|
|
}
|
|
}
|
|
}
|
|
|
|
task sourceJar(type: Jar) {
|
|
classifier = 'sources'
|
|
from android.sourceSets.main.java.srcDirs
|
|
}
|
|
|
|
project.afterEvaluate {
|
|
publishing {
|
|
publications {
|
|
maven(MavenPublication) {
|
|
artifact bundleReleaseAar
|
|
artifactId project.artifactId
|
|
|
|
artifact sourceJar
|
|
|
|
pom {
|
|
name = project.artifactId
|
|
description = 'Barcode scanner library for Android, based on the ZXing decoder'
|
|
url = 'https://github.com/journeyapps/zxing-android-embedded'
|
|
|
|
licenses {
|
|
license {
|
|
name = 'The Apache License, Version 2.0'
|
|
url = 'https://github.com/journeyapps/zxing-android-embedded/blob/master/COPYING'
|
|
}
|
|
}
|
|
|
|
developers {
|
|
developer {
|
|
id = ''
|
|
name = 'Ralf Kistner'
|
|
email = 'ralf@journeyapps.com'
|
|
organization = 'Journey Mobile, Inc'
|
|
organizationUrl = 'https://journeyapps.com'
|
|
}
|
|
}
|
|
scm {
|
|
connection = 'scm:git:github.com/journeyapps/zxing-android-embedded.git'
|
|
developerConnection = 'scm:git:ssh://github.com/journeyapps/zxing-android-embedded.git'
|
|
url = 'https://github.com/journeyapps/zxing-android-embedded'
|
|
}
|
|
}
|
|
|
|
|
|
pom.withXml {
|
|
// HACK to add dependencies to POM.
|
|
// When maven-publish can do this automatically for Android projects,
|
|
// remove this section.
|
|
def deps = asNode().appendNode('dependencies')
|
|
|
|
project.configurations.api.allDependencies.each { dep ->
|
|
def node = deps.appendNode('dependency')
|
|
node.appendNode('groupId', dep.group)
|
|
node.appendNode('artifactId', dep.name)
|
|
node.appendNode('version', dep.version)
|
|
node.appendNode('scope', 'api')
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
repositories {
|
|
maven {
|
|
name = "sonatype"
|
|
url = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
|
|
credentials {
|
|
username ossrhUsername
|
|
password ossrhPassword
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
signing {
|
|
sign publishing.publications
|
|
}
|