在我的项目中,我对sonatype repsitory的jar有一个编译依赖项,而这依赖于我在文件系统中只作为本地副本的jar。
要访问这两个jar,我的build.gradle看起来如下:
dependencies {
compile fileTree(dir: './3rdparty/mrcp4j/lib', include: ['*.jar'])
compile group: 'net.sourceforge.halef', name: 'cairo-client', version: '0.1-SNAPSHOT'
}
现在,我从sonatype中提取的cairo-client jar的pom包含对mrcp.jar的0.2版本的引用,如下所示
<dependency>
<groupId>org.mrcp4j</groupId>
<artifactId>mrcp4j</artifactId>
<version>0.2</version>
<scope>compile</scope>
</dependency>
cairo-client.jar的供应商没有将mrcp4j.jar发布为第三方或类似的,但似乎依赖于本地maven存储库中的副本。
构建失败,因为gradle无法将指定的版本与我能够提供的版本匹配。
Could not find org.mrcp4j:mrcp4j:0.2.
Searched in the following locations:
https://repo1.maven.org/maven2/org/mrcp4j/mrcp4j/0.2/mrcp4j-0.2.pom
https://repo1.maven.org/maven2/org/mrcp4j/mrcp4j/0.2/mrcp4j-0.2.jar
https://jcenter.bintray.com/org/mrcp4j/mrcp4j/0.2/mrcp4j-0.2.pom
https://jcenter.bintray.com/org/mrcp4j/mrcp4j/0.2/mrcp4j-0.2.jar
https://oss.sonatype.org/content/repositories/snapshots/org/mrcp4j/mrcp4j/0.2/mrcp4j-0.2.pom
https://oss.sonatype.org/content/repositories/snapshots/org/mrcp4j/mrcp4j/0.2/mrcp4j-0.2.jar
Required by:
org.jvoicexml:org.jvoicexml.implementation.mrcpv2:0.7.8 > net.sourceforge.halef:cairo-client:0.1-SNAPSHOT
org.jvoicexml:org.jvoicexml.implementation.mrcpv2:0.7.8 > net.sourceforge.halef:cairo-sip:1.0-SNAPSHOT
是否可以在文件系统中为jar指定版本或忽略请求的版本号并替换所请求的属性?
答案 0 :(得分:0)
与此同时,我找到了针对这种情况的解决方法。我在这里分享它,希望它对其他人有用。无论如何,我对这方面的改进感兴趣。
我的解决方法是基于忽略所有配置中的依赖jar,并保留对文件系统中本地jar的引用。
所以我所做的只是添加以下几行
configurations.all {
exclude group: ' org.mrcp4j', module:'mrcp4j'
}
必须保留对文件系统的依赖以提供jar。