包含来自 jCenter 的 AAR 是否也包含它的依赖项?
Does including a AAR from jCenter also include its dependencies?
我已经将 MoPub SDK 集成到一个新的 Android 应用程序中,使用最简单的方法,即向我的主模块的 build.gradle
添加依赖项(按照 MoPub integration guide 中的说明) :
repositories {
jcenter()
}
dependencies {
compile('com.mopub:mopub-sdk:4.1.0@aar') {
transitive = true
}
}
该指南提到 MoPub SDK 需要几个依赖项:
Requirements and Dependencies
- android-support-v4.jar, r22
- android-support-annotations.jar, r22
- android-support-v7-recyclerview.jar, r22
- MoPub Volley Library (mopub-volley-1.1.0.jar - available on JCenter)
我应该自己添加这些依赖,还是由Gradle依赖管理系统处理?
这些被称为 Transitive dependencies 并且 Gradle 自动检索它们(假设一个指定 transitive=true 正如你在问题中所指定的那样)
它们在 mopub-sdk pom 文件中指定,该文件是 library repo.
中包含的信息的一部分
您可以查看该文件,您会发现:
<dependencies>
<dependency>
<groupId>com.google.android.exoplayer</groupId>
<artifactId>exoplayer</artifactId>
<version>r1.4.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.android.support</groupId>
<artifactId>support-annotations</artifactId>
<version>22.2.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.android.support</groupId>
<artifactId>support-v4</artifactId>
<version>22.2.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.android.support</groupId>
<artifactId>recyclerview-v7</artifactId>
<version>22.2.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.mopub.volley</groupId>
<artifactId>mopub-volley</artifactId>
<version>1.1.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
一个问题是 google 支持库依赖项在 JCenter() 上不可用,您必须使用 Android SDK 管理器单独安装它们。在本地安装它们后,Gradle 可以在 Android SDK 为此目的设置的本地存储库中找到它们。
您不需要全部添加。 Gradle 处理它。
我一直在使用 mopub,并且只用这些就可以正常工作:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile('com.mopub:mopub-sdk:3.12.0@aar') {
transitive = true
}
compile project(':mm-ad-sdk')
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:preference-v7:23.1.1'
compile 'com.google.android.gms:play-services:8.3.0'
compile 'com.android.support:design:23.1.1'
}
支持库适用于我的项目。因此没有为 mopub 添加。如果您想使用 admob,只需添加 play-services
。同样,如果您打算使用 mopub 调解其他网络,请参考 dependencies/jar。
我已经将 MoPub SDK 集成到一个新的 Android 应用程序中,使用最简单的方法,即向我的主模块的 build.gradle
添加依赖项(按照 MoPub integration guide 中的说明) :
repositories {
jcenter()
}
dependencies {
compile('com.mopub:mopub-sdk:4.1.0@aar') {
transitive = true
}
}
该指南提到 MoPub SDK 需要几个依赖项:
Requirements and Dependencies
- android-support-v4.jar, r22
- android-support-annotations.jar, r22
- android-support-v7-recyclerview.jar, r22
- MoPub Volley Library (mopub-volley-1.1.0.jar - available on JCenter)
我应该自己添加这些依赖,还是由Gradle依赖管理系统处理?
这些被称为 Transitive dependencies 并且 Gradle 自动检索它们(假设一个指定 transitive=true 正如你在问题中所指定的那样)
它们在 mopub-sdk pom 文件中指定,该文件是 library repo.
中包含的信息的一部分您可以查看该文件,您会发现:
<dependencies>
<dependency>
<groupId>com.google.android.exoplayer</groupId>
<artifactId>exoplayer</artifactId>
<version>r1.4.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.android.support</groupId>
<artifactId>support-annotations</artifactId>
<version>22.2.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.android.support</groupId>
<artifactId>support-v4</artifactId>
<version>22.2.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.android.support</groupId>
<artifactId>recyclerview-v7</artifactId>
<version>22.2.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.mopub.volley</groupId>
<artifactId>mopub-volley</artifactId>
<version>1.1.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
一个问题是 google 支持库依赖项在 JCenter() 上不可用,您必须使用 Android SDK 管理器单独安装它们。在本地安装它们后,Gradle 可以在 Android SDK 为此目的设置的本地存储库中找到它们。
您不需要全部添加。 Gradle 处理它。
我一直在使用 mopub,并且只用这些就可以正常工作:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile('com.mopub:mopub-sdk:3.12.0@aar') {
transitive = true
}
compile project(':mm-ad-sdk')
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:preference-v7:23.1.1'
compile 'com.google.android.gms:play-services:8.3.0'
compile 'com.android.support:design:23.1.1'
}
支持库适用于我的项目。因此没有为 mopub 添加。如果您想使用 admob,只需添加 play-services
。同样,如果您打算使用 mopub 调解其他网络,请参考 dependencies/jar。