在安卓工作室的子模块上运行时删除jar



我有三个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')
}

我尝试过的

  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')
    }
    

注意:我还将provided更改为自定义的providedlib,但它仍然不起的作用

  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')
        }
    }
    

有效的方法是向maven repo添加依赖项,并将其包含在具有所提供依赖项的库中

  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渐变脚本(:)。

依赖项{编译fileTree(目录:"libs",包括:"*.jar")

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

}

最新更新