【发布时间】:2018-12-23 16:06:21
【问题描述】:
我在 Android Studio 中有一个库项目,将在 Android 和 Java 项目中使用。我正在使用 Android Studio 附带的 maven-publish 插件以 .aar 和 .jar 格式将此库发布到我自己的远程工件存储库。我可以在 Android 应用程序中正确获取和使用该库,但是当我尝试在 Java 项目中使用它时,intellij 和 eclipse 即使库在那里也无法检测到 即使 gradle /maven 正在从远程仓库获取库。我尝试只将 aar 推送到远程仓库并在 Java 项目中获取它,但这也没有成功。请注意,我在这个库中没有 Android 依赖项/资源。以下是用于生成工件并将其推送到远程服务器的脚本。
apply plugin: 'com.android.library'
apply plugin: 'maven-publish'
android.libraryVariants.all { variant ->
variant.outputs.all {
outputFileName = "${_groupId}-${_artifactId}-${android.defaultConfig.versionName}.aar"
}
}
task sourceJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier "sources"
}
task deleteOldJar(type:Delete){
delete 'release/MyLibrary.jar'
}
task exportJar(type:Copy){
from('build/intermediates/bundles/release/')
into('release/')
include('classes.jar')
rename('classes.jar','MyLibrary.jar')
}
publishing {
repositories {
maven {
url _remoteRepoUrl
}
}
publications {
library(MavenPublication) {
groupId _groupId
artifactId _artifactId
version android.defaultConfig.versionName
artifact(sourceJar)
artifact(exportJar)
artifact ("$buildDir/outputs/aar/${_groupId}-${_artifactId}-${android.defaultConfig.versionName}.aar") { //aar artifact you want to publish
builtBy assembleDebug
}
//generate pom nodes for dependencies
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
configurations.compile.allDependencies.each { dependency ->
println "dependency name is: "+dependency.name
if(!dependency.name.equals('unspecified')) {
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', dependency.group)
dependencyNode.appendNode('artifactId', dependency.name)
dependencyNode.appendNode('version', dependency.version)
dependencyNode.appendNode('type', "aar")
}
else
println "dependency name is unspecified"
}
}
}
}
}
我做错了什么?
【问题讨论】:
标签: java android eclipse maven intellij-idea