diff --git a/platforms/android/aar-template/OpenCV/build.gradle.template b/platforms/android/aar-template/OpenCV/build.gradle.template index 23d88a6910..10c8e64aa7 100644 --- a/platforms/android/aar-template/OpenCV/build.gradle.template +++ b/platforms/android/aar-template/OpenCV/build.gradle.template @@ -57,6 +57,7 @@ android { publishing { singleVariant('release') { withSourcesJar() + withJavadocJar() } } } @@ -64,14 +65,42 @@ android { publishing { publications { release(MavenPublication) { + // Builds aar, sources jar and javadoc jar from project sources and creates maven + groupId = 'org.opencv' + artifactId = '${PACKAGE_NAME}' + version = '${OPENCV_VERSION}' + afterEvaluate { + from components.release + } + } + modified(MavenPublication) { + // Creates maven from opencv-release.aar groupId = 'org.opencv' artifactId = '${PACKAGE_NAME}' version = '${OPENCV_VERSION}' artifact("opencv-release.aar") - -// afterEvaluate { -// from components.release -// } + pom { + name = "OpenCV" + description = "Open Source Computer Vision Library" + url = "https://opencv.org/" + licenses { + license { + name = "The Apache License, Version 2.0" + url = "https://github.com/opencv/opencv/blob/master/LICENSE" + } + } + developers { + developer { + id = "admin" + name = "OpenCV Team" + email = "admin@opencv.org" + } + } + scm { + connection = "scm:git:https://github.com/opencv/opencv.git" + url = "https://github.com/opencv/opencv" + } + } } } repositories { diff --git a/platforms/android/build_java_shared_aar.py b/platforms/android/build_java_shared_aar.py index e99c78ec28..ffb63c67e5 100755 --- a/platforms/android/build_java_shared_aar.py +++ b/platforms/android/build_java_shared_aar.py @@ -144,6 +144,8 @@ def main(args): print("Creating local maven repo...") shutil.copy(final_aar_path, path.join(ANDROID_PROJECT_DIR, "OpenCV/opencv-release.aar")) + + print("Creating a maven repo from project sources (with sources jar and javadoc jar)...") subprocess.run(["./gradlew", "publishReleasePublicationToMyrepoRepository"], shell=False, cwd=ANDROID_PROJECT_DIR, @@ -153,6 +155,17 @@ def main(args): shutil.move(path.join(ANDROID_PROJECT_DIR, "OpenCV/build/repo/org/opencv", MAVEN_PACKAGE_NAME), path.join(FINAL_REPO_PATH, "org/opencv", MAVEN_PACKAGE_NAME)) + print("Creating a maven repo from modified AAR (with cpp libraries)...") + subprocess.run(["./gradlew", "publishModifiedPublicationToMyrepoRepository"], + shell=False, + cwd=ANDROID_PROJECT_DIR, + check=True) + + # Replacing AAR from the first maven repo with modified AAR from the second maven repo + shutil.copytree(path.join(ANDROID_PROJECT_DIR, "OpenCV/build/repo/org/opencv", MAVEN_PACKAGE_NAME), + path.join(FINAL_REPO_PATH, "org/opencv", MAVEN_PACKAGE_NAME), + dirs_exist_ok=True) + if __name__ == "__main__": parser = argparse.ArgumentParser(description="Builds AAR with Java and shared C++ libs from OpenCV SDK") diff --git a/platforms/android/build_static_aar.py b/platforms/android/build_static_aar.py index c1ab4046f4..20054047fa 100755 --- a/platforms/android/build_static_aar.py +++ b/platforms/android/build_static_aar.py @@ -216,6 +216,7 @@ def main(args): shutil.copy(final_aar_path, path.join(ANDROID_PROJECT_DIR, "OpenCV/opencv-release.aar")) + print("Creating a maven repo from project sources (with sources jar and javadoc jar)...") subprocess.run(["./gradlew", "publishReleasePublicationToMyrepoRepository"], shell=False, cwd=ANDROID_PROJECT_DIR, @@ -224,6 +225,18 @@ def main(args): os.makedirs(path.join(FINAL_REPO_PATH, "org/opencv"), exist_ok=True) shutil.move(path.join(ANDROID_PROJECT_DIR, "OpenCV/build/repo/org/opencv", MAVEN_PACKAGE_NAME), path.join(FINAL_REPO_PATH, "org/opencv", MAVEN_PACKAGE_NAME)) + + print("Creating a maven repo from modified AAR (with cpp libraries)...") + subprocess.run(["./gradlew", "publishModifiedPublicationToMyrepoRepository"], + shell=False, + cwd=ANDROID_PROJECT_DIR, + check=True) + + # Replacing AAR from the first maven repo with modified AAR from the second maven repo + shutil.copytree(path.join(ANDROID_PROJECT_DIR, "OpenCV/build/repo/org/opencv", MAVEN_PACKAGE_NAME), + path.join(FINAL_REPO_PATH, "org/opencv", MAVEN_PACKAGE_NAME), + dirs_exist_ok=True) + print("Done")