如何在 Gradle 中使依赖传递
How to make dependency transitive in Gradle
我已经下载了 javax.mail-api-1.5.3.jar 文件复制到 app/libs 文件夹,然后右键单击,添加为库。然后下面一行出现在 dependency
下
compile files('libs/javax.mail-api-1.5.3.jar')
我想建立这个依赖关系 transitive.Because 我在 pom.xml 文件中提到了 javax.mail-api 库依赖关系,如下所示。
<dependencies>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.5.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.3</version>
<scope>test</scope>
</dependency>
</dependencies>
我也试过了
compile (files('libs/javax.mail-api-1.5.3.jar')){
transitive true
}
然后出现这个错误。
Error:(34, 0) Gradle DSL method not found: 'compile()'
Possible causes:
The project 'MeetingManager' may be using a version of Gradle that does not contain the method.
Open Gradle wrapper file
The build file may be missing a Gradle plugin.
Apply Gradle plugin
我不知道下一步该怎么做,请帮忙。
我的 build.Gradle 文件看起来像
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.example.meetingmanager"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions{
exclude 'META-INF/LICENSE.txt'
}
}
dependencies {
compile 'com.android.support:appcompat-v7:22.1.1'
compile 'com.google.android.gms:play-services:7.3.0'
compile 'com.google.api-client:google-api-client:1.20.0'
compile 'com.google.apis:google-api-services-gmail:v1-rev29-1.20.0'
compile 'com.google.api-client:google-api-client-android:1.20.0'
compile 'com.google.api-client:google-api-client-gson:1.20.0'
compile (files('libs/javax.mail-api-1.5.3.jar')){
transitive true
}
}
javax.mail-api-1.5.3
也可以从构建文件中描述的现有存储库(可能是 jCenter 或 mavenCentral)下载。如果您不依赖于在 /libs
中使用下载的版本,您可以在构建文件中执行此操作:
dependency {
compile 'javax.mail:javax.mail-api:1.5.3'
}
这种情况下的默认行为是在您这样指定时下载传递依赖项。
这是对该存储库的引用:http://mvnrepository.com/artifact/javax.mail/javax.mail-api/1.5.3
我已经下载了 javax.mail-api-1.5.3.jar 文件复制到 app/libs 文件夹,然后右键单击,添加为库。然后下面一行出现在 dependency
下compile files('libs/javax.mail-api-1.5.3.jar')
我想建立这个依赖关系 transitive.Because 我在 pom.xml 文件中提到了 javax.mail-api 库依赖关系,如下所示。
<dependencies>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.5.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.3</version>
<scope>test</scope>
</dependency>
</dependencies>
我也试过了
compile (files('libs/javax.mail-api-1.5.3.jar')){
transitive true
}
然后出现这个错误。
Error:(34, 0) Gradle DSL method not found: 'compile()'
Possible causes:
The project 'MeetingManager' may be using a version of Gradle that does not contain the method.
Open Gradle wrapper file
The build file may be missing a Gradle plugin.
Apply Gradle plugin
我不知道下一步该怎么做,请帮忙。
我的 build.Gradle 文件看起来像
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.example.meetingmanager"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions{
exclude 'META-INF/LICENSE.txt'
}
}
dependencies {
compile 'com.android.support:appcompat-v7:22.1.1'
compile 'com.google.android.gms:play-services:7.3.0'
compile 'com.google.api-client:google-api-client:1.20.0'
compile 'com.google.apis:google-api-services-gmail:v1-rev29-1.20.0'
compile 'com.google.api-client:google-api-client-android:1.20.0'
compile 'com.google.api-client:google-api-client-gson:1.20.0'
compile (files('libs/javax.mail-api-1.5.3.jar')){
transitive true
}
}
javax.mail-api-1.5.3
也可以从构建文件中描述的现有存储库(可能是 jCenter 或 mavenCentral)下载。如果您不依赖于在 /libs
中使用下载的版本,您可以在构建文件中执行此操作:
dependency {
compile 'javax.mail:javax.mail-api:1.5.3'
}
这种情况下的默认行为是在您这样指定时下载传递依赖项。
这是对该存储库的引用:http://mvnrepository.com/artifact/javax.mail/javax.mail-api/1.5.3