我需要在我的应用中使用亚马逊地图和亚马逊消息.
使用gradle,我没有成功添加具有"提供"范围的Amazon依赖项,因为它们需要:
JAR文件包含Amazon Maps API的存根实现.它不包含Maps API类的实际实现,因此您不应将JAR编译到您的应用程序中.
亚马逊支持提供的解决方案都不适合我.
如果有人成功使用亚马逊地图或亚马逊消息与Gradle,请在此处分享您的build.gradle文件.
mko*_*bit 55
在Gradle的2.12版本中,compileOnly添加了与provided范围类似的功能.测试类路径中发生的情况有所不同.以下是发行说明中的相关引用和摘录:
您现在可以声明依赖项仅在编译时与Java插件一起使用.仅编译依赖项仅在源编译期间使用,并且不包含在运行时类路径中或公开给依赖项目.此行为类似于基于Maven的构建中可用的"提供"范围.但是,与Maven提供的依赖项不同,在Gradle中仅编译依赖项不包含在测试类路径中.
应仅将编译依赖项分配给相关源集的"compileOnly"配置.
Run Code Online (Sandbox Code Playgroud)dependencies { compileOnly 'javax.servlet:servlet-api:2.5' }
Mic*_*ryl 41
我一直在使用的解决方案非常简单.您必须将以下代码添加到build.gradle文件中:
apply plugin: 'eclipse'  // Eclipse users only
configurations {
    provided
}
sourceSets {
    main.compileClasspath += configurations.provided
    test.compileClasspath += configurations.provided
    test.runtimeClasspath += configurations.provided
}
eclipse.classpath.plusConfigurations += configurations.provided  // Eclipse users only
如果您不是Eclipse用户(我不是),您实际上并不需要第一行和最后一行,正如您可能已经猜到的那样.
添加上述配置后,您可以在依赖项部分中添加提供的依赖项以及任何常规编译依赖项:
dependencies {
    compile group: 'org.springframework', name: 'spring-core', version: '3.2.6.RELEASE'
    provided group: 'javax.servlet', name: 'servlet-api', version:'2.5'
    provided group: 'javax.servlet.jsp', name: 'jsp-api', version:'2.1'
}
希望有所帮助.一段时间以来,它对我来说一直很好用.
现在有一个很棒的插件来自Netflix,gradle-extra-configurations-plugin.它提供了一个provided和optional范围.不再需要手动管道,并且在例如发布到maven存储库时也生成所需的元数据.
| 归档时间: | 
 | 
| 查看次数: | 47787 次 | 
| 最近记录: |