2

我为项目 (project build.gradle) 设置了三个 build.gradle 文件,一个用于主模块 (main build.gradle),另一个用于另一个子模块 (submodule build.gradle)

我的子模块build.gradle使用 ADM(亚马逊设备消息)。因此附加了以下依赖项。

使用提供的对主 build.gradle 的依赖项可以工作,但如果我将它添加到子模块,它就不起作用。如果打开,则以下工作

主构建.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')
}

我试过的

  1. 在子模块 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')
    }
    

注意:我也将提供更改为诸如提供库之类的自定义内容,但它仍然无法正常工作

  1. 在子模块 build.gradle文件中添加了以下内容(运行时异常仍然)

    android.libraryVariants.all { 
    variant -> variant.packageLibrary.exclude( 'ext_libs/amazon-device-messaging-1.0.1.jar' )
    }
    
  2. 在子模块 build.gradle文件中添加了以下内容(我什至无法用这个家伙编译 - 我猜它在构建过程中也会删除)

    android.libraryVariants.all { variant ->
        variant.outputs.each { output ->
            output.packageLibrary.exclude('libs/someLib.jar')
        }
    }
    
4

2 回答 2

0

有效的是将依赖项添加到 maven 存储库并将其包含在具有提供的依赖项的库中

于 2015-05-01T16:12:49.233 回答
0
  1. 在 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"
  1. 包括本地 Maven 存储库作为项目依赖项:

在主 Gradle 构建脚本中添加“mavenLocal()”:

            allprojects {
            repositories {
                            mavenCentral()
                            mavenLocal()
             }
  1. 在 ADM 项目中链接 Maven 工件。

添加以下行 ADMWrapperLib Gradle 脚本 (::)。

依赖项{ 编译文件树(目录:'libs',包括:'*.jar')

provided 'com.amazon.device.messaging:amazondevicemessaging:1.0.1'

}

于 2015-05-04T10:37:03.733 回答