plugins { id 'com.android.library' id 'org.jetbrains.kotlin.android' id 'maven-publish' id 'signing' } android { namespace 'com.highcapable.yukihookapi' compileSdk rootProject.ext.android.compileSdk defaultConfig { minSdk rootProject.ext.android.minSdk targetSdk rootProject.ext.android.targetSdk buildConfigField('String', 'API_VERSION_NAME', "\"${rootProject.ext.maven.repository.apiVersion.name}\"") buildConfigField('int', 'API_VERSION_CODE', "${rootProject.ext.maven.repository.apiVersion.code}") consumerProguardFiles 'consumer-rules.pro' } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = '11' freeCompilerArgs = [ '-opt-in=com.highcapable.yukihookapi.annotation.YukiPrivateApi', '-opt-in=com.highcapable.yukihookapi.annotation.YukiGenerateApi', '-Xno-param-assertions', '-Xno-call-assertions', '-Xno-receiver-assertions' ] } lintOptions { checkReleaseBuilds false } publishing { singleVariant('release') { withSourcesJar() withJavadocJar() } } } kotlin { sourceSets { all { languageSettings { optIn('com.highcapable.yukihookapi.annotation.YukiPrivateApi') optIn('com.highcapable.yukihookapi.annotation.YukiGenerateApi') } } } } dependencies { // Used 82 API Version compileOnly 'de.robv.android.xposed:api:82' compileOnly project(':yukihookapi-stub') implementation 'androidx.core:core-ktx:1.10.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.preference:preference-ktx:1.2.0' } tasks.register('androidSourcesJar', Jar) { archiveClassifier.set('sources') from android.sourceSets.main.java.srcDirs } group = rootProject.ext.maven.repository.groupId version = rootProject.ext.maven.repository.apiVersion.name publishing { publications { release(MavenPublication) { artifactId = 'api' artifact "$buildDir/outputs/aar/${project.name}-release.aar" artifact androidSourcesJar pom { name = rootProject.ext.maven.repository.name description = rootProject.ext.maven.repository.description url = rootProject.ext.maven.repository.website licenses { license { name = rootProject.ext.maven.repository.licence.name url = rootProject.ext.maven.repository.licence.url } } developers { developer { id = rootProject.ext.maven.developer.id name = rootProject.ext.maven.developer.user email = rootProject.ext.maven.developer.email } } scm { connection = rootProject.ext.maven.configurations.githubConnection developerConnection = rootProject.ext.maven.configurations.githubDeveloperConnection url = rootProject.ext.maven.configurations.githubUrl } } } } repositories { maven { name = rootProject.ext.maven.configurations.ossName url = rootProject.ext.maven.configurations.ossUrl credentials { def configs = getMavenCredentials(projectDir) username = configs.username password = configs.password } } } } signing { sign publishing.publications }