![](/img/trans.png)
[英]How can I export an Android library as .aar & keep my Gradle dependencies?
[英]How do I ship an Android Library (aar) with remote dependencies (gradle)?
我正在嘗試使用具有遠程依賴關系的gradle構建aar文件。 下面是一個示例構建腳本。 如您所見,我有兩個依賴項。 我遇到的問題是當我發布時,aar文件不包含遠程依賴項,所以當我在其他項目中包含aar文件時,我得到NoClassDefFound錯誤。
我發現如果我將jar從我當地的maven repo復制到我項目中的libs文件夾,那么jar確實會包含在發布版本中。 如何在aar文件中包含遠程依賴項? 我還在其他地方讀到,這樣運送依賴關系是不好的做法,所以如果有更好的方法來做我想做的事情,我就是為了它。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
apply plugin: 'android-library'
repositories {
mavenCentral()
mavenLocal()
}
android {
... omitted for brevity
}
dependencies {
compile 'com.somepackage:someartifact:1.0'
compile 'com.anotherpackage:artifact:2.0'
}
嘗試使用transitive
屬性:
compile ('group_id:artifact_id:version_name@aar'){
transitive = true
}
你可以查看這個鏈接:
你必須創建一個POM文件,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sprezzat</groupId>
<artifactId>app</artifactId>
<version>1.0.0</version>
<packaging>aar</packaging>
<dependencies>
<dependency>
<groupId>com.bugsense.trace</groupId>
<artifactId>bugsense</artifactId>
<version>3.6</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
並將其部署在maven上。
之后,您可以在Android應用程序build.gradle配置中定義它,如下所示:
compile ('com.somepackage:LIBRARY_NAME:1.0.0@aar'){
transitive=true
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.