Merge pull request #24849 from alexlyulkov:al/aar-javadoc

Modified AAR script: added javadoc to Android Maven #24849

Modified AAR script.
Now the script creates 2 maven repos. The first repo contains sources jar, javadoc jar and AAR without cpp libraries.
The second repo contains modified AAR with cpp libraries. The script merges two repos into one.

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [x] The PR is proposed to the proper branch
- [ ] There is a reference to the original bug report and related work
- [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake

Co-authored-by: Alexander Lyulkov <alexander.lyulkov@opencv.ai>
Co-authored-by: Alexander Smorkalov <alexander.smorkalov@xperience.ai>
This commit is contained in:
alexlyulkov 2024-01-12 18:06:12 +07:00 committed by GitHub
parent ebc637d07d
commit 1e190b3094
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 59 additions and 4 deletions

View File

@ -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 {

View File

@ -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")

View File

@ -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")