Add*_*dev 5 java android gradle
我正在尝试在 MavenCentral 中发布一个库。所以我正在关注Chris Banes 的这篇文章。
一切正常,但我有一个小问题:该库使用谷歌播放服务库:
compile 'com.google.android.gms:play-services:10.2.0'
Run Code Online (Sandbox Code Playgroud)
但我不需要依赖项,它只是可选的,如果使用我的应用程序的开发人员也将播放服务添加到他的依赖项中,我想检测它并使用一些类。但如果开发人员没有添加此依赖项,我会检测到缺少这些类,并且我不会使用它们。
所以基本上我想使用依赖项来编译构建,但我不希望 POM 文件添加此依赖项。我怎样才能做到这一点?
从Maven 插件文档中,您可以用来pom.whenConfigured重新组织依赖项。
例如,以下内容不会将junit& play-servicesartifactId 作为依赖项:
whenConfigured {
p - >
p.dependencies = p.dependencies.findAll {
dep - > (dep.artifactId.notIn(["junit", "play-services"]))
}
}
Run Code Online (Sandbox Code Playgroud)
在您的示例中,您将排除以下内容play-services:
pom {
project {
name POM_NAME
packaging POM_PACKAGING
description POM_DESCRIPTION
url POM_URL
scm {
url POM_SCM_URL
connection POM_SCM_CONNECTION
developerConnection POM_SCM_DEV_CONNECTION
}
licenses {
license {
name POM_LICENCE_NAME
url POM_LICENCE_URL
distribution POM_LICENCE_DIST
}
}
developers {
developer {
id POM_DEVELOPER_ID
name POM_DEVELOPER_NAME
}
}
}
whenConfigured {
p - >
p.dependencies = p.dependencies.findAll {
dep - > (dep.artifactId.notIn(["play-services"]))
}
}
}
///sf/answers/1876757991/
Object.metaClass.notIn = { Object collection ->
!(delegate in collection)
}
Run Code Online (Sandbox Code Playgroud)
您还可以排除为dep.groupId或dep.version
| 归档时间: |
|
| 查看次数: |
1301 次 |
| 最近记录: |