我有三个build.gradle文件用于项目(projectbuild.grade),一个用于主模块(mainbuild.gradre),另一个用于另一个子模块(submodule build.gradel)
我的子模块build.gradle
使用ADM(亚马逊设备消息)。因此具有以下依赖性。
使用提供的对主构建的依赖项.gradle是有效的,但如果我将其添加到子模块中,它就不起作用。以下适用于
主构建渐变
repositories {
mavenCentral()
flatDir {
dirs 'libs'
}
}
dependencies {
compile fileTree(dir: 'libs', exclude: 'amazon-device-messaging-1.0.1.jar', include: '*.jar')
provided files('libs/amazon-device-messaging-1.0.1.jar')
}
我尝试过的
将以下内容添加到子模块build.gradle(仍然获得运行时异常)
configurations { provided } sourceSets { main { compileClasspath += configurations.provided } test { compileClasspath += configurations.provided } } sourceSets.main.compileClasspath += configurations.provided dependencies { provided files('libs/amazon-device-messaging-1.0.1.jar') }
注意:我还将provided更改为自定义的providedlib,但它仍然不起的作用
将以下内容添加到子模块build.gradle文件(运行时异常仍然存在)
android.libraryVariants.all { variant -> variant.packageLibrary.exclude( 'ext_libs/amazon-device-messaging-1.0.1.jar' ) }
将以下内容添加到子模块build.gradle文件中(我甚至不能用这个家伙编译——我想它在构建过程中也会删除)
android.libraryVariants.all { variant -> variant.outputs.each { output -> output.packageLibrary.exclude('libs/someLib.jar') } }
有效的方法是向maven repo添加依赖项,并将其包含在具有所提供依赖项的库中
- 在Maven本地存储库中添加ADM jar
命令:
mvn install:install-file "-Dfile=amazon-device-messaging-1.0.1.jar" "-DgroupId=com.amazon.device.messaging" "-DartifactId=amazondevicemessaging" "-Dversion=1.0.1" "-Dpackaging=jar"
- 将本地maven存储库作为项目依赖项包括在内:
在Gradle主构建脚本中添加"mavenLocal()":
allprojects {
repositories {
mavenCentral()
mavenLocal()
}
- 链接ADM项目中的Maven工件
在行下添加ADMWrapperLib渐变脚本(:)。
依赖项{编译fileTree(目录:"libs",包括:"*.jar")
provided 'com.amazon.device.messaging:amazondevicemessaging:1.0.1'
}