如何使用组、名称、版本、类型的格式在 build.gradle 中添加 @jar 类型的依赖项?

nya*_*ssu 5 android gradle maven android-studio

依赖的 pom.xml 是用 来描述的<packaging>apk</packaging>,在编译中是行不通的。所以我在依赖树中排除模块并重新包含 compile 'package:artifactId:versionName@jar' 这确实有效,但是相应的格式是group:'groupName',name:'artifactId',version:'versionName',type:'type'什么?我试过type:'jar'哪个不起作用。我是否必须首先排除依赖树中的依赖项,然后重新包含它?或者我可以修改父依赖的描述?

父依赖:

compile (group:'parentGroupId',name:'parentModuleName',version:'parentVersion'){
    exclude group:'excludeGroupId',module:'excludeModuleName'
}

compile 'excludeGroupId:excludeModuleName:excludeVersion@jar'
Run Code Online (Sandbox Code Playgroud)

我试过

compile (group:'parentGroupId',name:'parentModuleName',version:'parentVersion'){
    exclude group:'excludeGroupId',module:'excludeModuleName'
}

compile (group:'excludeGroupId',name:'excludeModuleName',version:'excludeVersion',type:'jar')
Run Code Online (Sandbox Code Playgroud)

以上没有用

Sco*_*rta 2

根据http://www.gradle.org/docs/current/dsl/org.gradle.api.artifacts.dsl.DependencyHandler.html上的文档,这看起来是指定此类依赖项的正确方法:

compile (group:'excludeGroupId',name:'excludeModuleName',version:'excludeVersion') {
    artifact {
        name = 'excludeModuleName'
        type = 'jar'
    }
}
Run Code Online (Sandbox Code Playgroud)

name请注意,内部的冗余规范artifact是必需的 -NullPointerException如果没有它,您将得到一个。