Android 使用 Maven 的归档库集成
Android archive library integration using Maven
我正在尝试将 Android 存档 (aar) 从本地 Maven 集成到我的示例项目中的 Android studio。
我在 Android studio 中遇到以下构建错误:
评估项目时出现问题:app 在 org.gradle.api.internal.artifacts.repositories.DefaultMavenArtifactRepository_Decorated@181db40 上找不到 属性 HOME。
如果您使用本地 maven 与 android studio 一起工作,您需要这样做意味着要添加对 .aar 包的引用,它必须最好存储在中央 Maven 存储库中。
一个简单且非常直接的选项是在您的开发机器上创建一个本地 Maven 存储库,并在其中安装您的库。然后从您的 gradle 构建中引用它。而且做起来非常简单!.
- 由于您正在为 android 开发,我假设您已经安装了最新的 JDK 并设置了 JAVA_HOME 环境变量,但如果您没有 - 现在是时间。
- 然后你会想要安装 Maven。您可以在这里下载:http://maven.apache.org/download.cgi
设置MAVEN_HOME环境变量为你解压maven的路径,将maven的bin文件夹添加到PATH环境变量中
要测试 maven 是否正常工作,请打开一个新控制台 window 和 运行 以下内容:
mvn -version
如果一切正常,是时候将您的库添加到 Maven 存储库中了。在命令提示符 运行 以下内容:
mvn install:install-file -Dfile=d:\mylibrary-{version}.aar -DgroupId=com.example -DartifactId=mylibrary -Dversion={version} -Dpackaging=aar
不要忘记替换您的库的正确路径,设置您的 groupId、artifactId 和版本号。
最后,编辑您的 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'
}
最后,运行 用于构建您的应用程序的构建命令:
gradle 清理构建。
主要问题是在 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 清理构建 publishToMavenLocal
我用来让它工作的几篇基本文章:
How to install maven on windows.
Adding local .aar to gradle build
我正在尝试将 Android 存档 (aar) 从本地 Maven 集成到我的示例项目中的 Android studio。
我在 Android studio 中遇到以下构建错误:
评估项目时出现问题:app 在 org.gradle.api.internal.artifacts.repositories.DefaultMavenArtifactRepository_Decorated@181db40 上找不到 属性 HOME。
如果您使用本地 maven 与 android studio 一起工作,您需要这样做意味着要添加对 .aar 包的引用,它必须最好存储在中央 Maven 存储库中。
一个简单且非常直接的选项是在您的开发机器上创建一个本地 Maven 存储库,并在其中安装您的库。然后从您的 gradle 构建中引用它。而且做起来非常简单!.
- 由于您正在为 android 开发,我假设您已经安装了最新的 JDK 并设置了 JAVA_HOME 环境变量,但如果您没有 - 现在是时间。
- 然后你会想要安装 Maven。您可以在这里下载:http://maven.apache.org/download.cgi 设置MAVEN_HOME环境变量为你解压maven的路径,将maven的bin文件夹添加到PATH环境变量中
要测试 maven 是否正常工作,请打开一个新控制台 window 和 运行 以下内容:
mvn -version
如果一切正常,是时候将您的库添加到 Maven 存储库中了。在命令提示符 运行 以下内容:
mvn install:install-file -Dfile=d:\mylibrary-{version}.aar -DgroupId=com.example -DartifactId=mylibrary -Dversion={version} -Dpackaging=aar
不要忘记替换您的库的正确路径,设置您的 groupId、artifactId 和版本号。
最后,编辑您的 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' }
最后,运行 用于构建您的应用程序的构建命令: gradle 清理构建。
主要问题是在 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 清理构建 publishToMavenLocal
我用来让它工作的几篇基本文章:
How to install maven on windows.
Adding local .aar to gradle build