diff --git a/framework/build.gradle b/framework/build.gradle index 3fa224a685..8ee8ca0909 100644 --- a/framework/build.gradle +++ b/framework/build.gradle @@ -16,10 +16,6 @@ under the License. */ -ext { - apply from: 'cordova.gradle' -} - buildscript { apply from: 'cordova.gradle' apply from: 'repositories.gradle' @@ -38,7 +34,6 @@ allprojects { } apply plugin: 'com.android.library' -apply plugin: 'maven-publish' android { compileSdkVersion cordovaConfig.SDK_VERSION @@ -74,59 +69,17 @@ android { } } -task sourcesJar(type: Jar) { - from android.sourceSets.main.java.srcDirs - classifier = 'sources' -} - -publishing { - publications { - Cordova(MavenPublication) { - groupId = 'org.apache.cordova' - artifactId = 'framework' - version = '10.0.0-dev' - - artifact(sourcesJar) - artifact("$buildDir/outputs/aar/framework-release.aar") - - pom { - name = 'Cordova' - description = 'A library to build Cordova-based projects for the Android platform.' - url = 'https://cordova.apache.org' - - licenses { - license { - name = 'Apache License, Version 2.0' - url = 'https://www.apache.org/licenses/LICENSE-2.0.txt' - } - } - - developers { - developer { - id = 'stevengill' - name = 'Steve Gill' - } - developer { - id = 'erisu' - name = 'Bryan Ellis' - email = 'erisu@apache.org' - } - } - - scm { - connection = 'scm:git:https://github.com/apache/cordova-android.git' - developerConnection = 'scm:git:git@github.com:apache/cordova-android.git' - url = 'https://github.com/apache/cordova-android' - } - } - } - } -} - dependencies { implementation "androidx.appcompat:appcompat:${cordovaConfig.ANDROIDX_APP_COMPAT_VERSION}" + implementation "androidx.webkit:webkit:${cordovaConfig.ANDROIDX_WEBKIT_VERSION}" } -dependencies { - implementation 'androidx.webkit:webkit:1.3.0' +/** + * In a project created though CLI, the `cordova-publish.gradle` file is not copied to the `framework` dir. + * App development (CLI) projects can not and should not publish our framework. + * In this case, there is no need for the gradle build process to know about the publish process. + */ +def cordovaPublishGradle = './cordova-publish.gradle' +if(file(cordovaPublishGradle).exists()) { + apply from: cordovaPublishGradle } diff --git a/framework/cdv-gradle-config-defaults.json b/framework/cdv-gradle-config-defaults.json index daf912a490..25f9aa903c 100644 --- a/framework/cdv-gradle-config-defaults.json +++ b/framework/cdv-gradle-config-defaults.json @@ -6,6 +6,7 @@ "AGP_VERSION": "4.2.1", "KOTLIN_VERSION": "1.4.32", "ANDROIDX_APP_COMPAT_VERSION": "1.2.0", + "ANDROIDX_WEBKIT_VERSION": "1.3.0", "GRADLE_PLUGIN_GOOGLE_SERVICES_VERSION": "4.3.5", "IS_GRADLE_PLUGIN_GOOGLE_SERVICES_ENABLED": false, "IS_GRADLE_PLUGIN_KOTLIN_ENABLED": false diff --git a/framework/cordova-publish.gradle b/framework/cordova-publish.gradle new file mode 100644 index 0000000000..9526ea300c --- /dev/null +++ b/framework/cordova-publish.gradle @@ -0,0 +1,79 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you 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. +*/ + +apply plugin: 'maven-publish' + +String getCordovaAndroidVersion() { + // Fetch Data from Cordova-Android package.json (Used only by framework build/publishing) + def cordovaAndroidRepoPackageJson = "$projectDir/../package.json" + if(file(cordovaAndroidRepoPackageJson).exists()) { + def packageJsonFile = new File(cordovaAndroidRepoPackageJson) + def packageJson = new groovy.json.JsonSlurper().parseText(packageJsonFile.text) + return packageJson.version + } +} + +task sourcesJar(type: Jar) { + from android.sourceSets.main.java.srcDirs + classifier = 'sources' +} + +publishing { + publications { + Cordova(MavenPublication) { + groupId = 'org.apache.cordova' + artifactId = 'framework' + version = getCordovaAndroidVersion() + + artifact(sourcesJar) + artifact("$buildDir/outputs/aar/framework-release.aar") + + pom { + name = 'Cordova' + description = 'A library to build Cordova-based projects for the Android platform.' + url = 'https://cordova.apache.org' + + licenses { + license { + name = 'Apache License, Version 2.0' + url = 'https://www.apache.org/licenses/LICENSE-2.0.txt' + } + } + + developers { + developer { + id = 'stevengill' + name = 'Steve Gill' + } + developer { + id = 'erisu' + name = 'Bryan Ellis' + email = 'erisu@apache.org' + } + } + + scm { + connection = 'scm:git:https://github.com/apache/cordova-android.git' + developerConnection = 'scm:git:git@github.com:apache/cordova-android.git' + url = 'https://github.com/apache/cordova-android' + } + } + } + } +}