如何解决将 JNI 项目上传到 Maven 存储库
我正在尝试使用 this guide 通过 Maven 存储库将我的 Android 库上传到 GitHub 包,但在包含我的项目所依赖的 .so 文件时遇到了问题。
总的来说,库上传得很好,我什至可以在另一端下载。问题是 AAR 文件只包含我的库中的 Java/Kotlin 文件,而不包含来自 JNI 层的其余本机 C 代码。
这是我图书馆的 build.gradle
的样子:
apply plugin: 'maven-publish'
publishing {
publications {
aar(MavenPublication) {
groupId 'group.id'
artifactId 'artifact-id'
version '1.0'
artifact("$buildDir/outputs/aar/${getAarName()}-release.aar")
pom.withXml {
final dependenciesNode = asNode().appendNode('dependencies')
ext.addDependency = { Dependency dep,String scope ->
if (dep.group == null || dep.version == null || dep.name == null || dep.name == "unspecified")
return
final dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId',dep.group)
dependencyNode.appendNode('artifactId',dep.name)
dependencyNode.appendNode('version',dep.version)
dependencyNode.appendNode('scope',scope)
if (!dep.transitive) {
final exclusionNode = dependencyNode.appendNode('exclusions').appendNode('exclusion')
exclusionNode.appendNode('groupId','*')
exclusionNode.appendNode('artifactId','*')
} else if (!dep.properties.excludeRules.empty) {
final exclusionNode = dependencyNode.appendNode('exclusions').appendNode('exclusion')
dep.properties.excludeRules.each { ExcludeRule rule ->
exclusionNode.appendNode('groupId',rule.group ?: '*')
exclusionNode.appendNode('artifactId',rule.module ?: '*')
}
}
}
configurations.compile.getDependencies().each { dep -> addDependency(dep,"compile") }
configurations.api.getDependencies().each { dep -> addDependency(dep,"compile") }
configurations.implementation.getDependencies().each { dep -> addDependency(dep,"runtime") }
}
}
}
repositories {
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/some/url")
credentials {
username = githubProperties['gpr.usr']
password = githubProperties['gpr.key']
}
}
}
}
以下是我的目录树或多或少的外观以供参考:
root
- gradle
- app
- library
- build
- src
- androidTest
- main
- java (included in AAR)
- cpp (missing in AAR)
- res
我不确定我错过了什么。我读过很多问题/答案,说我必须将 maven-publish
插件指向我的 .so
文件,但我还没有想出如何做到这一点。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。