使用Maven进行Android归档库集成

时间:2016-03-08 06:25:13

标签: android maven aar

我正在尝试在我的示例项目中将Android存档(aar)从本地Maven集成到Android工作室。

我在Android studio中遇到以下构建错误:

评估项目时出现问题:app无法在org.gradle.api.internal.artifacts.repositories.DefaultMavenArtifactRepository_Decorated@181db40上找到属性HOME。

1 个答案:

答案 0 :(得分:0)

如果你使用本地 maven 来使用android studio,你需要这样做意味着要添加对.aar包的引用,理想情况下它必须存储在中央maven存储库中。

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

  1. 由于您正在为Android开发,我假设您已经安装了最新的JDK并设置了JAVA_HOME环境变量,但如果您没有 - 现在是时候了。
  2. 然后你想要安装Maven。您可以在此处下载:http://maven.apache.org/download.cgi 将MAVEN_HOME环境变量设置为您提取maven的路径,并将maven的bin文件夹添加到PATH环境变量。
  3. 要测试maven是否正常工作,请打开一个新的控制台窗口并运行以下命令:

    mvn -version

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

    mvn install:install-file -Dfile = d:\ mylibrary- {version} .aar -DgroupId = com.example -DartifactId = mylibrary -Dversion = {version} -Dpackaging = aar

  5. 不要忘记更换库的正确路径,设置groupId,artifactId和版本号。

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

       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'
      }
      
    2. 最后,运行build命令来构建你的应用: gradle clean build。

    3. 主要问题是在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 publishToMavenLocal

      我过去使用的一些基本文章:

      How to install maven on windows.

      Adding local .aar to gradle build