java Intellij和Eclipse无法找到库工件
我在Android studio中有一个库项目,将在Android和Java项目中使用。我将这个库发布到我自己的远程工件库中。aar和。jar格式使用Android Studio附带的maven publish插件。我可以在Android应用程序中正确获取和使用该库,但是当我尝试在Java项目中使用它时,intellij和eclipse无法检测到该库是否存在,即使gradle/maven正在从远程repo获取该库。我尝试过只将aar推到远程回购,并在Java项目中获取,但也没有成功。请注意,我在这个库中没有Android依赖项/资源。下面是用于生成工件并将其推送到远程服务器的脚本
apply plugin: 'com.安卓.library'
apply plugin: 'maven-publish'
安卓.libraryVariants.all { variant ->
variant.outputs.all {
outputFileName = "${_groupId}-${_artifactId}-${安卓.defaultConfig.versionName}.aar"
}
}
task sourceJar(type: Jar) {
from 安卓.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 安卓.defaultConfig.versionName
artifact(sourceJar)
artifact(exportJar)
artifact ("$buildDir/outputs/aar/${_groupId}-${_artifactId}-${安卓.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"
}
}
}
}
}
我做错了什么
# 1 楼答案
我找到了解决办法。原来是com。安卓gradle中的库插件在某种程度上干扰了生成的工件,因此只有Android项目可以使用库工件,而不是普通的java项目。由于我的库没有任何布局资源,我可以跳过制作。aar生成一个jar文件。为了生成jar文件并将其发布到远程repo,使用了以下代码段: