使用Maven集成Android存档库

使用Maven集成Android存档库,android,maven,aar,Android,Maven,Aar,我试图在我的示例项目中集成一个从本地Maven到Android studio的Android存档(aar) 我在Android studio中遇到以下生成错误: 评估项目时出现问题:应用程序在org.gradle.api.internal.artifacts.repositories.DefaultMavenArtifactRepository上找不到属性主页_Decorated@181db40.如果您使用localmaven与android studio一起工作,您需要这样做,这意味着要添加对

我试图在我的示例项目中集成一个从本地Maven到Android studio的Android存档(aar)

我在Android studio中遇到以下生成错误:


评估项目时出现问题:应用程序在org.gradle.api.internal.artifacts.repositories.DefaultMavenArtifactRepository上找不到属性主页_Decorated@181db40.

如果您使用localmaven与android studio一起工作,您需要这样做,这意味着要添加对.aar包的引用,它必须存储在中央maven存储库中

一个简单且非常直接的选择是在您的开发机器上创建一个本地maven存储库,并在其中安装您的库。然后从gradle构建中引用它。而且做这件事非常简单

  • 由于您是为android开发的,我假设您已经安装了最新的JDK并设置了JAVA_HOME环境变量,但是如果您没有,现在就是时候了
  • 然后你会想安装Maven。你可以在这里下载: 将MAVEN_HOME环境变量设置为提取MAVEN的路径,并将MAVEN的bin文件夹添加到path环境变量中
  • 要测试maven是否工作正常,请打开新的控制台窗口并运行以下操作:

    mvn-版本

  • 如果一切正常,是时候将您的库添加到maven存储库中了。在命令提示符下运行以下命令:

    mvn安装:安装文件-Dfile=d:\mylibrary-{version}.aar-DgroupId=com.example-DartifactId=mylibrary-Dversion={version}-dpackage=aar

  • 不要忘记替换库的正确路径,设置groupId、artifactId和版本号

  • 最后,编辑build.gradle以开始查看本地maven存储库。例如,如果您想同时使用maven central和本地repo,您可以将它们添加到存储库配置中。 下面是一个非常基本的build.gradle示例,用于使用我们在上面注册的库的android应用程序:

     buildscript {
           repositories {
           mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4.2'
    }
    }
    
    apply plugin: 'android'
    
    repositories {
        mavenCentral()
        mavenLocal()
    }
    
    dependencies {
        compile('com.example:mylibrary:0.2')
    }
    
    android {
        compileSdkVersion 17
        buildToolsVersion '17.0.0'
    }
    
  • 最后,运行build命令来构建您的应用程序: 格雷德尔干净的身材

  • 主要问题是在maven发布概要文件中获取生成的.aar文件。为此,我们将运行对android.libraryVariants的调用,该调用将初始化此对象,并创建构建所需的所有子任务,包括创建.aar文件的“bundleRelease”

    下面是我的build.gradle文件的外观:

    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:0.4.2'
        }
    }
    
    apply plugin: 'android-library'
    apply plugin: 'maven-publish'
    
    version '0.2'
    group 'com.example'
    
    android {
        compileSdkVersion 17
        buildToolsVersion '17.0.0'
    
        defaultConfig {
            versionCode 2
            versionName '0.2'
        }
    }
    
    android.libraryVariants
    publishing {
        publications {
            maven(MavenPublication) {
                artifact bundleRelease
            }
        }
    }
    
    如果要将artifactId更改为自定义内容,可以通过添加以下行在settings.gradle中更改项目名称:

    rootProject.name='mylibrary' 就这样。现在,在项目文件夹中打开一个命令提示符,并运行以下操作以生成库并将其发布到本地maven存储库:

    gradle clean build PublishToAvenLocal

    我用了几篇基本文章来实现这一点:


    您可以显示您的依赖关系吗?