如何在gradle中仅使用基于文件的依赖项,而不是指定groupId:artifactId:versionId

时间:2015-09-16 09:34:58

标签: gradle jar jarjar

我的gradle文件中有以下条目

dependencies {
    compile 'org.A:A:1.0'
}

下载'org.B:B:1.0',因为这是它的依赖性。(未在gradle中明确提及)

我想在项目中使用的是A *和B *,分别是A和B的阴影(更改名称空间)。

现在,我已将A *的依赖关系指定为

dependencies{
    compile file('libs/A*.jar')
}

但是,这个仍然下载'org.B:B:1.0'

如何连接gradle以使用文件('libs / B * .jar')

2 个答案:

答案 0 :(得分:0)

首先想到的解决方案是排除dependencies { compile('org.A:A:1.0') { exclude 'org.B:B:1.0' } }

的传递依赖性

这样的工作原理如下:

GlassFish

有关该主题的更多详细信息,请查看Gradle User Guide

答案 1 :(得分:0)

如评论中所述,文件依赖项不能具有传递依赖性。所以B.jar要么以某种方式将B.jar的内容卷入其中,要么在其他地方的构建路径上有maven

文件依赖性通常是最后的工具,它们不参与冲突解决;您需要一个依赖性存储库,如ivyif [type]=="signup"{ elasticsearch { protocol => "http" user =>"*****" password =>"*******" document_type => "signup" host => "localhost" index => "signups" } }